gpt4 book ai didi

android - android 4.0.3版本线程返回错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:33:50 28 4
gpt4 key购买 nike

我有一个问题,我的 android 应用程序中有启动画面,我在其中使用线程等待 8 秒,它在 1.6、2.1、2.2、2.3.3、3.0、3.1 中运行良好但返回错误当我想在 4.0.3 版本的 android 中运行时,我不知道为什么?请为我建议正确的解决方案。下面我提到了错误堆栈和我的代码。

错误堆栈:

01-05 10:16:06.417: E/AndroidRuntime(589): FATAL EXCEPTION: Thread-75
01-05 10:16:06.417: E/AndroidRuntime(589): java.lang.UnsupportedOperationException
01-05 10:16:06.417: E/AndroidRuntime(589): at java.lang.Thread.stop(Thread.java:1076)
01-05 10:16:06.417: E/AndroidRuntime(589): at java.lang.Thread.stop(Thread.java:1063)
01-05 10:16:06.417: E/AndroidRuntime(589): at com.shipface.common.SplashScreen$1.run(SplashScreen.java:34)

代码:

public class SplashScreen extends Activity {
/** Called when the activity is first created. */
Thread splash;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

splash = new Thread(){
@Override
public void run(){
try {

synchronized(this){
// Wait given period of time or exit on touch
wait(4000);
Intent intent = new Intent(SplashScreen.this,HomeActivity.class);
startActivity(intent);
finish();
}
}
catch(InterruptedException ex){
}

finish();


stop();
}
};


splash.start();
}
}

最佳答案

每个人都已经说过异常是从哪里来的(Thread.stop()),所以我就不说了......

到目前为止,最简单的方法是根本不为此目的创建Thread;即使是 AsyncTask 也做得太过了。这就是 Handler 的创建目的(甚至是 CountDownTimer,但 Handler 更干净,IMO)。

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Handler handler = new Handler();
Runnable action = new Runnable(){
@Override
public void run(){
Intent intent = new Intent(SplashScreen.this,HomeActivity.class);
startActivity(intent);
finish();
}
};

handler.postDelayed(action, 8000);
}

Handler 甚至会在主线程上为您运行操作,无论如何都应该调用该代码。

HTH

关于android - android 4.0.3版本线程返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8737857/

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