Ich habe einen Dienst, den ich auf BOOT COMPLETEService nicht auf BOOT COMPLETE gestartet
starten mag, wenn es gestartet wird, ich habe einen Toast Meldung angezeigt.
Mein Problem ist, dass beim Hochfahren des Geräts der Toast angezeigt wird und auf dem Bildschirm hängen bleibt und der Dienst nicht korrekt gestartet wird.
aber wenn ich versuche, meinen Dienst durch eine Aktivität zu starten, startet der Dienst gut und der Toast verschwindet nach ein paar Sekunden richtig.
mein Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tfl.extprotocolservice"
android:versionCode="7"
android:versionName="1.6" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<application
android:allowBackup="true"
android:icon="@drawable/launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver android:name="com.tfl.extprotocolservice.ExtProtocolBroadcastReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service android:name=".ExtProtocolService" >
<intent-filter>
<action android:name="com.tfl.extprotocolservice.ISetIpPort" />
</intent-filter>
<intent-filter>
<action android:name="com.tfl.extprotocolservice.IExtMessage" />
</intent-filter>
</service>
<!--
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
-->
</application>
</manifest>
meine Rundfunkempfänger:
public class ExtProtocolBroadcastReceiver extends BroadcastReceiver {
/* broadcast receiver to start on BOOT COMPLETE*/
@Override
public void onReceive(Context context, Intent intent) {
Intent StartServiceIntent=new Intent(context,ExtProtocolService.class);
context.startService(StartServiceIntent);
}
}
btw, wird die Aktivität im Manifest kommentiert, weil ich wirklich brauche es nicht, es war nur der Start zu testen Service von einer Aktivität.
Was passiert, wenn Sie Ihre App zuerst starten, indem Sie sie aus dem Launcher starten und dann neu starten? Führt der Neustart Ihren Dienst aus? – HappyCactus
@HappyCactus leider nicht. immer noch dasselbe – yanish