2016-04-20 6 views
0

1秒ごとにregisterReceiverが必要です。アンドロイドで1秒ごとにコマンドのインテントフィルタを実行できますか?

私は1秒ごとをしたい

registerReceiver(receiver, new IntentFilter(Intent.ACTION_TIME_TICK)); 

しかし、このコードごとに1分

を試してみてください。

おそらく、アンドロイドはフォームを持っていますか?

ありがとうございました

+0

、ときあなたの活動の一時停止、あなたが刻々と過ぎを停止することを確認し

private static final long TICK_INTERVAL = TimeUnit.SECONDS.toMillis(1); private static final Handler tickHandler = new Handler(Looper.getMainLooper()); public void onResume() { super.onResume(); tick(TICK_INTERVAL); } private void tick(final long interval) { tickHandler.postDelayed( new Runnable() { public void run() { tick(interval); onTick(); } }, ); } protected void onTick() { // do something } 

、ハンドラを使用することです。あなたはそれを変更することはできません。 [この投稿](http://stackoverflow.com/questions/6242268/repeat-a-task-with-a-time-delay)に記載されているオプションのいずれかを使用してください。 –

答えて

2

あなたは何を達成しようとしていますか? 1秒ごとにいくつかのコードを実行したいだけの場合は、ユーザはBroadcastReceiverにしないでください。レシーバは、(比較的)高価な、トリガされるたびにプロセス間通信を生じる。

ベストな方法は、 `TIME_TICK`放送は毎分のみ送信され

public void onPause() { 
    super.onPause(); 
    tickHandler.removeCallbacksAndMessages(null); 
} 
関連する問題