Android计时器/ timertask导致我的应用程序崩溃?

JDS*_*JDS 6 java android timer

只需在mainActivity的onCreate中测试一个简单的代码块:

Timer timer2 = new Timer(); 
        TimerTask testing = new TimerTask() {
            public void run() { 
                Toast.makeText(mainActivity.this, "test", Toast.LENGTH_SHORT).show();

            }
        };
        timer2.schedule(testing, 1000);
Run Code Online (Sandbox Code Playgroud)

我得到了"强制关闭"错误.

是什么赋予了?

JDS*_*JDS 6

对于碰到这个问题的其他人来说,我通过使用Handler和Runnable来执行Toast来解决问题,这似乎是UI交互所需要的:

    final Handler handler = new Handler(); 
    Timer timer2 = new Timer(); 
    TimerTask testing = new TimerTask() {
        public void run() { 
            handler.post(new Runnable() {
                public void run() {
                    Toast.makeText(mainActivity.this, "test", Toast.LENGTH_SHORT).show();
                }

            });


        }
    };
    timer2.schedule(testing, 1000);
Run Code Online (Sandbox Code Playgroud)

我仍然不明白为什么这是必要的,也许有人可以解释一下?但是,至少这个代码工作大声笑.