gpt4 book ai didi

java - 当我使用处理程序时,SetContentView 不起作用

转载 作者:行者123 更新时间:2023-12-01 23:58:41 25 4
gpt4 key购买 nike

我正在尝试使用Thread使应用程序 hibernate 。我有 2 个解决方案,但其中之一会导致问题。

这是一个较短的代码,可以完美地工作:

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

final Handler goToMenu = new Handler();

goToMenu.postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(getApplicationContext(), Menu.class);
startActivity(i);
}
},5000);
}

但是这个是有问题的。当我以毫秒为单位输入时间以使应用程序等待时,它可以工作,第二个 Activity 启动,但 R.layout.welcome 不会出现。应用程序只是以灰色背景等待,直到 startActivity(i) 被执行。

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

final Handler goToMenu = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {

Intent i = new Intent(getApplicationContext(), Menu.class);
startActivity(i);
}
};

Runnable run = new Runnable() {
@Override
public void run() {
try {
synchronized (this) {
wait(5000);
}

} catch (InterruptedException e) {
// TODO Auto-generated catch block
Log.d(TAG, "Waiting didnt work!!");
e.printStackTrace();
}
goToMenu.sendEmptyMessage(0);

}

};

Thread waitThread = new Thread(run);
waitThread.run();

出了什么问题?

最佳答案

要启动新线程,请使用 Thread#start() 而不是 Thread#run()

run() 只是同步执行 Runnable,即阻塞当前线程。

关于java - 当我使用处理程序时,SetContentView 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58190672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com