0

Androidサービスを試すのはこれが初めてなので、少し迷っています。常にバックグラウンドで実行するサービスを必要とするアプリケーションを開発しています。このサービスは、メインアクティビティのonclickイベントから初期化されます。サービスを開始するには、次のコードを使用します。

Intent Test = new Intent(this, testService.class);
startService(Test);

サービスでは基本的に2つのことがあります。onCreateメソッドでは、タイマーを初期化し、30分ごとに新しいスレッドを開き、サーバーに新しいデータがあるかどうかを確認します。onStartメソッドを使用しているときに、Receiverを登録します。

数時間後にサービスが強制終了された後、ガベージコレクターがサービスを削除している可能性はありますか?私の疑惑は、サービスを初期化する方法がまだアクティビティの「メイン」プロセスにバインドされていることです。サービスを継続して実行するにはどうすればよいですか?

ありがとう

4

2 に答える 2

1

OSがリソースを必要とする場合、OSは通常の優先度またはユーザー定義のバックグラウンドサービスを強制終了できます。したがって、サービスを常に実行する場合は、バックグラウンドサービスをフォアグラウンドに設定できます。また、電話をスリープモードにしたくない場合は、あなたはウェイクロックを使うことができます...これらによってあなたはあなたのサービスを常にオンモードに設定することができます.....ありがとう

于 2012-04-10T09:57:30.743 に答える
1

このタスクにはタイマーの代わりに AlarmManager が必要です。

于 2012-04-09T20:39:00.497 に答える