2

アプリの実行中にバックグラウンドでいくつかのことを追跡する Android アプリを開発しています。私はAndroidの初心者なので、やりたいことを説明しようと思います。

セットアップ: MainActivity、TrackerActivity、TrackerService (サービスにはウェイクロックが含まれています)、および 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 からサービスを開始するコード:

Intent serviceIntent = new Intent();
serviceIntent.setAction("com.example.android.TrackerService");
startService(serviceIntent);

アプリに入ると、MainActivity が開始されます。次に、TrackerActivity が MainActivity から開始されると、TrackerService が TrackerActivity の onCreate で開始されます。サービスはちょうど 10 秒間実行され、終了します。次に、TrackerServiceWakeupReciever が再びサービスを開始し、10 秒間実行されてループします。

なぜ 10 秒しか実行されないのですか? すぐに MainActivity に戻ってスリープ ボタンを押すと、サービスが実行され続けることに気付きました。デバイスがスリープ状態から抜けたときでも、サービスは実行されています。

この問題を解決するには?それを理解するために1週間を費やしました。私はそれが単純だと思います:)

前もって感謝します。マーティン

4

1 に答える 1