ここで同様の質問に関する私の回答をご覧になることをお勧めします:Service v /sAsyncTask。
個人的にはHandler
、特定の時間間隔で実行するタスクを簡単に投稿します。
例:
private Handler mHandler = new Handler();
private void startTimer(Runnable Task, long delay) {
mHandler.removeCallbacks(Task);
mHandler.postDelayed(Task, delay);
}
private void stopTimer(Runnable Task) {
mHandler.removeCallbacks(Task);
}
private Runnable registerListeners = new Runnable() {
public void run() {
startTimer(registerListeners, 10*60*1000); //register to run again in 10 minutes
startTimer(unregisterListeners, 5*1000); //to unregister in 5 seconds
//here register your listeners
}
};
private Runnable unregisterListeners = new Runnable() {
public void run() {
//here unregister your listeners
}
};
リスニングプロセスを開始する場合:
//To start you listeners
startTimer(registerListeners, 0);
すべてを止めたいとき:
//To stop registering/unregistering listeners
stopTimer(registerListeners);
注:リスナーで長時間実行されているコードを実行している場合は、上記のリンクにある回答を参照してください。
よろしく。