我試圖在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對象的正確方法是什麼?
謝謝