我有个问题
我正在使用handler和runnable更新我的应用程序中的计时器,在runnable中我正在更新textview,在1分钟后我想显示一些内容,在我旋转屏幕之前,一切正常,每个textview现在都为空,我不知道为什么。
我的代码:
Runnable mTimer = new Runnable() {
@Override
public void run() {
textView.setText(DateFormat.format("mm:ss", timers - System.currentTimeMillis()));
test();
mHandler.postDelayed(this, TIME);
}
};
你知道为什么会这样吗?
最佳答案
处理程序可能会将可运行文件传递给回收的活动。正确使用Handler
就像
private Handler mHandler;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mHandler = new Handler();
setContentView(R.layout.yourView);
mTextView = findViewById(R.id.text);
}
@Override
protected void onStart() {
super.onStart();
//start updating every time Activity is started
handler.postDelayed(mTimer, oneMinuteDelay);
}
@Override
protected void onStop() {
super.onStop();
//make sure to remove all messages
handler.removeCallbacksAndMessages(null);
}
关于android - Android处理程序和可运行的nullpointer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23538843/