1

別のアプリを起動するアプリがあります。アプリがバックグラウンドに入ると、バックグラウンドで 1 分ごとにメソッドを実行したいと考えています。ユーザーは他のアプリに何時間もいる可能性があり、このコードをできるだけ長く実行する必要があります。

Androidでこれを行う最良の方法は何ですか?

Androidのドキュメントには次のように書かれています:

「スレッドを長時間実行し続ける必要がある場合は、Executor、ThreadPoolExecutor、FutureTask など、java.util.concurrent パッケージで提供されるさまざまな API を使用することを強くお勧めします」

これらのユーティリティは、私の頭を少し超えています。バックグラウンドタイマーについても助けが必要です。

基本的に私はこれが欲しい:

(while my app is in background) do:
MyMethod()
Wait(1 minute)
4

2 に答える 2

0

alarmmanager サービスに登録し、1 分ごとにレシーバーを呼び出す必要があります。これは、alarmmanager を使用してイベントをスケジュールすることから始める良い例です。

于 2013-09-23T23:23:57.757 に答える
0

ScheduledExecutorService を使用してみてくださいhttp://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.htmlを参照してください。

scheduleWithFixedDelay(Runnable コマンド、長い initialDelay、長い遅延、TimeUnit 単位) というメソッドがあります。

あなたができる

Executors.newScheduledThreadPool(1).scheduleWithFixedDelay(new Runnable() {
public void run() {
wait(1);
}),0,1,TimeUnit.SECONDS);
于 2013-09-23T23:30:42.897 に答える