ScheduledExecutorService没有启动

时间:2011-07-28 16:55:30

标签: android

我对ScheduledExecutorService有一些问题。 我想在一段时间后开始通知。在这种情况下它10秒。但是10秒后它就没有开始。除此之外的所有功能都正常工作

以下是代码:

 ScheduledExecutorService scheduler =
                    Executors.newSingleThreadScheduledExecutor();
                 scheduler.schedule(new Runnable() { 
                   public void run() { 
                       Toast.makeText(BService.this, "It works", Toast.LENGTH_SHORT).show();

                        // Display a notification about us starting.  We put an icon in the status bar.
                        showNotification();
                    } 
                  }, 10, TimeUnit.SECONDS);

感谢您的帮助 ROA

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题而且我发现了原因。 在UI线程上没有调用run(),而Toast崩溃了该线程(但由于某些未知原因,它没有在LogCat上提供任何内容)。

但如果你这样做:

task.schedule(new Runnable() {

    @Override
    public void run() {
    runOnUiThread(new Runnable() {

        @Override
        public void run() {
        // your Toas goes in here
        }
    });
    }
}, DURATION, TimeUnit.MILLISECONDS);

它会起作用!

答案 1 :(得分:0)

ScheduledExecutorService.schedule()被正确调用,因此我猜你的run()因某种原因出错了。您可以run() 开头添加日志,以检查它是否已启动。