0

サーバーに連絡して、アプリから定期的にデータ転送を行うサービスがあります。その正常に動作します。

しかし、私が再起動したとき(電源を入れ直したとき)、そのサービスは再起動できません。私の考えは、ユーザーが電話を再起動した後にアプリを開いたときに、そのサービスを再度開始することです。そのためには、サービスが実行されているかどうかを知る必要がありますか? どうやってするの?

このシナリオを処理する他のアイデアも感謝します。

前もって感謝します。

4

3 に答える 3

1

アクションBroadcastReceiverを意図した の実装が必要です。BOOT_COMPLETEDこのような:

public class OnStartReceiver extends BroadcastReceiver {


  @Override
  public void onReceive(Context context, Intent intent) {
//     your starting service code here
  }

}

また、次のように、 = OnStartReceiver の完全修飾名とインテント フィルター タグをインテント名としてネストしたreceiverマニフェスト ファイルにタグを追加する必要があります。android:nameBOOT_COMPLETED

<receiver android:name=".onStartReceiver">
   <intent-filter>
      <action android:name="android.intent.action.BOOT_COMPLETED"/>                    
   </intent-filter>

于 2010-12-16T11:53:29.317 に答える
0

BroadcastReceiverイベントをリッスンするを作成しますACTION_BOOT_COMPLETED。詳細はこちら

于 2010-12-16T10:00:45.363 に答える
0

AlarmManagerこのようなスケジュールされたタスクに使用すると、サービスが常にメモリ内にある必要がなくなります。Ribery 氏が指摘しているように、電話の再起動後にBroadcastReceiverwithを使用しACTION_BOOT_COMPLETEDてタスクを再スケジュールします。

于 2010-12-16T11:50:30.590 に答える