アクティビティが開始されると自動的に開始されるサービスを既に開発しています。しかし、特定の間隔が10秒後にサービスを停止し、30秒後にサービスを再開したいと考えています。私はAndroidプログラミングに少し慣れていないので、その方法がわからないので、助けてください。放送受信機を利用してサービスを開始しています。
質問する
7316 次
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
タスクをそれよりも原始的な部分に分解する必要があります。次に、グーグルで検索する必要があるものを確認し、より良い結果を得ることができます:)
- スケジューラを使用して別のスレッドで新しいタスクをスケジュールする
- スレッドを X ミリ秒間「スリープ」します。
- インテントとブロードキャストレシーバーを使用してサービスを開始します
さらに(優れた方法)、アラームマネージャーを使用して、Androidでコードの実行をスケジュールする方法、またはAndroidのデーモンスレッドとは正確には何ですか?
于 2013-08-16T11:32:05.043 に答える