Führen Sie beim Starten der Anwendung nur einen Hintergrunddienst aus
Ich möchte nur einen Dienst starten, wenn meine Anwendung gestartet wird. Hier ist mein Code:
Meine Serviceklasse:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("LocalService", "Received start id " + startId + ": " + intent);
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
Meine BroadcastReceiver-Klasse:
public class MyServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service = new Intent(context, MyService.class);
context.startService(service);
}
}
Und meine AndroidManifest-Datei:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<service
android:name=".MyService"
android:label="@string/app_name"
android:enabled="true"
android:process=":my_process" >
</service>
<receiver
android:name=".MyServiceReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.HOME"/>
</intent-filter>
</receiver>
</application>
Ich möchte meinen Dienst beim Start der Anwendung (bei der ersten Installation) und beim Booten des Geräts starten.
P.S. Wenn der Code stimmt, muss ich möglicherweise eine bestimmte Konfiguration für die Eclipse-Schaltfläche "Ausführen" einrichten. Wenn ich versuche, eine neue Konfiguration zu erstellen, kann ich unter "Aktion starten" nichts auswählen, da meine Anwendung keine Aktivität aufweist und ich "Nichts tun" auswählen muss.
Vielen Dank