【问题标题】:Why does the runnable thread does not work?为什么可运行线程不起作用?
【发布时间】:2015-06-07 14:41:59
【问题描述】:

我是 android 线程的新手。我想在onCreate() 方法上调用一个新的可运行线程。我的意思是当onCreate() 方法被调用时,线程也被调用,我用它来做动画工作。 我制作了一个用于测试线程的基本应用程序,但它不起作用。 按照我的源代码。请告诉我背后的原因,以及如何解决它。谢谢。

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

            requestWindowFeature(Window.FEATURE_NO_TITLE);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

            t.start();
    }


    Thread t = new Thread(new Runnable() {
        public void run() {

            Toast.makeText(getApplicationContext(), "thread called", Toast.LENGTH_LONG).show();

        }
    });
}

【问题讨论】:

  • 你能指定预期的行为吗?
  • 您需要解释“不起作用。”。错误,什么都不做,做的不是你期望的……
  • 无法开始活动。
  • 同样requestWindowFeature不能在setContentView之后使用
  • 请在以后发布实际代码/错误消息,而不是屏幕截图。但是错误说明了@Blackbelt 的意思。 “添加内容前必须调用requestFeature()”

标签: java android multithreading runnable


【解决方案1】:

您的线程可以工作,但必须在应用程序的主线程上显示 Toast。 尝试使用:

runOnUiThread(new Runnable() {
    public void run() {
        Toast.makeText(getApplicationContext(), "thread called", Toast.LENGTH_LONG).show();
    }
});

这就是当你不在 UI 线程中时将东西放入 UI 线程中的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2013-04-02
    • 1970-01-01
    • 2014-07-04
    • 2014-06-17
    相关资源
    最近更新 更多