要从TimerTask访问活动上下文,可以通过以下方法解决:
public class MyTimerTask extends TimerTask {
private Context context;
public MyTimerTask(Context context) {
this.context = context;
}
@Override
public void run() {
// 在此处可以使用context访问活动上下文
}
}
public class MainActivity extends AppCompatActivity {
private Timer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timer = new Timer();
MyTimerTask myTimerTask = new MyTimerTask(MainActivity.this);
timer.schedule(myTimerTask, 0, 1000);
}
@Override
protected void onDestroy() {
super.onDestroy();
timer.cancel();
}
}
通过上述方法,可以在TimerTask的run()方法中使用context变量访问活动上下文。