私は1分ごとにサーバーにデバイスの場所を送信しているアプリケーションを開発しています。私はここでハンドラを使用して自分の仕事をスケジュールしています。ユーザーがSTOPボタンをクリックすると、ハンドラはその実行を停止する必要があります。私はこれを達成することができません。以下の私のコードを見つけてください。間隔(1分)で実行中のハンドラを停止する方法はありますか?
public void callSpecficTime() {
timer = new Timer();
doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
Log.e("TImeOnSchedule", String.valueOf(inTime));
if(inTime==5)
{
new PostDataAsyncTask().execute();
}
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 60000);
}
StopTaskコード:
public void stopTask(){
if(doAsynchronousTask!=null){
Log.d("TIMER", "timer canceled");
handler.removeCallbacks(doAsynchronousTask);
// timer.cancel();
doAsynchronousTask.cancel();
}
}
は私がstopService
、removeCallbacks
を試してみましたが、それはうまくいきませんでした。誰も私のためにこれのためのソリューションを提供できますか?
を更新し
public void onClickButton(View v)
{
if(v.getId()==R.id.IBstart)
{
callAsynchronousTask();
callSpecficTime();
}
else if(v.getId()==R.idIBstop)
{
stopTask();
}
}
これは私が2倍のデータを掲載しています** callAsynchronousTask()**
public void callAsynchronousTask() {
new PostDataAsyncTask().execute();
}
です。最初にユーザーがのSTARTボタンをクリックした後、1分ごとに実行するタイマーを開始します。
time.purge()right?私はそれをしました。まだ問題は同じです。 は私が... null'なので –