0

アクティビティが開始されると自動的に開始されるサービスを既に開発しています。しかし、特定の間隔が10秒後にサービスを停止し、30秒後にサービスを再開したいと考えています。私はAndroidプログラミングに少し慣れていないので、その方法がわからないので、助けてください。放送受信機を利用してサービスを開始しています。

4

3 に答える 3

6

アラーム マネージャーを使用し、保留中のインテントを送信してサービスを開始することをお勧めします。このように:

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent serviceIntent = new Intent(context, ServiceReceiver.class); 
PendingIntent pi = PendingIntent.getBroadcast(context, ServiceIdsConstants.SERVICE_ID,     serviceIntent , PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 30000, pi);

次に、BroadcastReceiver で次のようにします。

Intent intent = new Intent(context, MyServiceService.class);
context.startService(intent);
于 2013-08-16T11:41:29.997 に答える
2

タスクをそれよりも原始的な部分に分解する必要があります。次に、グーグルで検索する必要があるものを確認し、より良い結果を得ることができます:)

  1. スケジューラを使用して別のスレッドで新しいタスクをスケジュールする
  2. スレッドを X ミリ秒間「スリープ」します。
  3. インテントとブロードキャストレシーバーを使用してサービスを開始します

さらに(優れた方法)、アラームマネージャーを使用して、Androidでコードの実行をスケジュールする方法、またはAndroidのデーモンスレッドとは正確には何ですか?

于 2013-08-16T11:32:05.043 に答える