私は、アプリケーションの実行中にバックグラウンドでいくつかのことを追跡するAndroid Appを開発しています。私はAndroidの初心者なので、何をしたいのか説明しようとします。Androidサービスが10秒後に終了する
セットアップ: MainActivity、TrackerActivity、TrackerService(サービスがwakelockが含まれている)とTrackerServiceWakeupReciever
TrackerServiceが閉じているとき、これが実行されます。
public class TrackerServiceWakeupReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.example.android.TrackerService");
serviceIntent.putExtra("action", "checkSound");
context.startService(serviceIntent);
}
}
TrackerActivityからサービスを開始しますコード:アプリケーションを入力するときMainActivityが開始され
Intent serviceIntent = new Intent();
serviceIntent.setAction("com.example.android.TrackerService");
startService(serviceIntent);
TrackerActivityはMainActivityから開始されるとき、そしてTrackerServiceはTrackerActivityののonCreateで開始されます。このサービスは、10秒で終了します。その後、TrackerServiceWakeupRecieverが再びサービスを開始し、10秒をもう一度実行してループします。
なぜ10秒で実行されるのですか?私がすぐにMainActivityに戻ってスリープボタンを押すと、サービスが実行され続けることに気がつきました。デバイスがスリープ状態になっても、サービスが実行されています。
この問題を解決するにはどうすればよいですか?それを理解するために1週間を使いました。私はそれがsimpelだと思います:)
ありがとうございます。 Martin
あなたはもっと長く滞在したいと思っていますか? – Rohit