アプリケーションにインテントサービスがあります。アプリケーションが起動すると、サービスクラスが正常に実行され、正常に機能します(Bluetoothから取得したデータをsqlite
データベースに保存します)。インテントサービスは私のアプリ専用であり、他のアプリでは使用されません。
ただし、アプリケーションが長期間非アクティブになっていると、サービスの実行が停止することがあります。サービスを確実に実行し続けたいので、サービスを作成しました。また、電話が起動したときにサービスが自動的に起動するようにしたい(これは起動しません)。
私が行くときsettings -> applications -> running services
、私のサービスはそこにリストされていません。
これが私のマニフェストファイルの関連部分です:
<service android:enabled="true" android:name=".MyHxMService" android:exported="false">
<intent-filter>
<action
android:name="org.xxxxx.MyHxMService" />
</intent-filter>
</service>
<receiver android:name="MyStartupIntentReceiver">
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
</application>
これが私のインテントサービスクラス宣言です:
public class MyHxMService extends IntentService {
これが私のMyStartupIntentReceiverです:
package com.NewApp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyStartupIntentReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent();
serviceIntent.setAction("org.xxxxx.MyHxMService");
context.startService(serviceIntent);
}
}