我想在5秒后发送通知。
我发现此代码示例在 5秒后执行某些操作,但我只能设置Log.e()
。
Notification
方法也有效。但是,如果我想调用方法setNotification()
,我会在 5秒后得到RuntimeError
:
无法在未调用looper.prepare()的Thread内创建Handler。
我找到了很多帮助,但没有任何作用。所以我希望你能帮助我。
public class Reminder {
Timer timer;
public Reminder(int seconds) {
timer = new Timer();
timer.schedule(new RemindTask(), seconds * 1000);
}
}
class RemindTask extends TimerTask {
public void run() {
todo_list rem = new todo_list();
rem.setNotification("Todo!", false, 1);
}
}
public class todo_list extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
new Reminder(5);
}
public void setNotification(String text, boolean ongoing, int id) {}
}
答案 0 :(得分:0)
您需要从一直保持运行的线程调用rem.setNotification。一种方法是使用runonuithread
runonUithread(new Runnable(){
run(){
rem.setNotification("Todo!",false,1);
}
});
答案 1 :(得分:0)
当您执行一些不应在除UI线程之外的其他线程中完成的代码时,您将收到此错误。如此简单地获取一个活动对象并在其上调用runOnUiThread(Runnable action) {}
。将生成错误的代码放在Runnable
。
我希望这会有所帮助。