Issue
I want to cancel the TimerTask using .cancel() but it has the above error. How that can be fixed? This function is called from a service, NOT activity.
public void makeCall() {
final Handler handler = new Handler();
Timer timer = new Timer();
final TimerTask CallTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
try {
if (!bCall){
CallTask.cancel();
}
else{
String thisPhoneNo = "";
thisPhoneNo = "tel:12345678";
call (thisPhoneNo);
}
} catch (Exception e) {
// TODO Auto-generated catch block
} finally {
}
}
});
}
};
timer.schedule(CallTask, 0, 60000); // execute in every 600000
// ms
}
Solution
Instead of CallTask.cancel();
use this.cancel();
or just cancel();
to call cancel
on itself. You cannot access a variable while instantiating it.
Answered By - Daniel Knauf
Answer Checked By - Robin (JavaFixing Admin)