我试图在BroadcastReceiver收到事件后的一段时间向用户显示一条消息。从BroadcastReceiver显示延迟的Toast
public class MyReceiver extends BroadcastReceiver {
private Timer timer = new Timer();
@Override
public void onReceive(Context context, Intent intent) {
// Display message in 10 sec.
timer.schedule(new MessageTask(context, "Test Message"), 10 * 1000);
}
private static class MessageTask extends TimerTask {
public MessageTask(Context context, String message) {
this.context = context;
this.message = message;
}
public void run() {
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}
}
当我运行此我得到以下异常:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
这是做这样的事情的正确方法?我应该使用其他的定时器吗?在这种情况下获取Context对象的正确方法是什么?
谢谢