【发布时间】:2014-01-27 14:45:17
【问题描述】:
我收到此错误。不在任何设备上,只是在某些设备上。 这是所有报告:
java.lang.NullPointerException
at eu.innovaapps.tpark.ro.MainSms$4$1$1.run(MainSms.java:444)
at java.util.Timer$TimerImpl.run(Timer.java:284)
它来自:
buton.setEnabled(false);
Timer buttonTimer = new Timer();
buttonTimer.schedule(new TimerTask() {
@Override
public void run() {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
buton.setEnabled(true);
}
});
}
}, 5000);
当我按下按钮时,它会被禁用,5 秒后它会再次启用。
第 444 行是getActivity().runOnUiThread(new Runnable() {。
如果您能帮我解决这个错误,我将不胜感激。
编辑: 我遇到了和这里一样的问题: Scheduled Task in Fragment returns getActivity as null
如果按钮处于禁用状态,并且我按下手机的后退按钮,我会收到此错误,该错误会在这部分代码中发送给我。 如果按下后退按钮,有什么方法可以停止计时器?
【问题讨论】:
-
你在代码中究竟是从哪里得到 npe 的??
-
我认为 npe 在 getActivity() 或按钮上。这段代码是写在一个fragment的onCreateView方法中?
-
写在片段的onStart方法中
-
getActivity().runOnUiThread(new Runnable() { 这是第 444 行
标签: android nullpointerexception