Android アプリで、毎秒実行する必要があるネットワーク アクティビティ (データの送信) を開始したい状況があります。私は次のようにこれを達成します:
私はonCreate()
コードを持っています:
tv = new TextView(this);
tv.postDelayed(sendData, 1000);
sendData()
機能:
Handler handler = new Handler();
private Runnable sendData=new Runnable(){
public void run(){
try {
//prepare and send the data here..
handler.removeCallbacks(sendData);
handler.postDelayed(sendData, 1000);
}
catch (Exception e) {
e.printStackTrace();
}
}
};
問題は次のようになります。ユーザーが戻るボタンを押してアプリが出てくる (UI が消える) と、sendData()
機能がまだ実行されます。ユーザーがアプリを再起動すると、myonCreate()
が再度sendData()
呼び出され、1 秒に 2 回呼び出されます。それはそのように続きます。ユーザーが出てきて再起動するたびに、sendData()
1 秒あたり 1 回以上発生します。
私は何を間違っていますか?それは私のnew Handler()
作成の問題ですか?これを処理する最善の方法は何ですか? sendData()
ユーザーがアプリを終了するまで (アプリケーション マネージャーから)、毎秒 1 回の呼び出しが必要です。