0

5秒後に通知を送信したい。

このコード例では5 秒後に何かを実行することがわかりましたが、Log.e(). メソッドも有効です
Notificationしかし、メソッドを呼び出したい場合は、 5 秒setNotification()に次のようになります。 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) {}

}
4

2 に答える 2

0

UIスレッド以外のスレッドで実行してはならないコードを実行すると、このエラーが発生します。アクティビティオブジェクトを取得して呼び出すrunOnUiThread(Runnable action) {}だけです。エラーを生成するコードをに配置しますRunnable

これがお役に立てば幸いです。

于 2012-08-18T08:15:13.940 に答える
0

常に実行し続けるスレッドから rem.setNotification を呼び出す必要があります。1 つの方法は、runonuithreadを使用することです。

runonUithread(new Runnable(){
    run(){
        rem.setNotification("Todo!",false,1);
    }
});
于 2012-08-18T06:42:03.547 に答える