我的启动画面启动时java.lang.UnsupportedOperationException

当我的启动画面启动时,我在logcat中遇到错误:

11-06 02:36:45.450: E/global(4184): Deprecated Thread methods are not supported. 11-06 02:36:45.450: E/global(4184): java.lang.UnsupportedOperationException 11-06 02:36:45.450: E/global(4184): at java.lang.VMThread.stop(VMThread.java:85) 11-06 02:36:45.450: E/global(4184): at java.lang.Thread.stop(Thread.java:1280) 11-06 02:36:45.450: E/global(4184): at java.lang.Thread.stop(Thread.java:1247) 11-06 02:36:45.450: E/global(4184): at com.example.kostas.splash$1.run(splash.java:38) 

这是我的class级:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); // thread for displaying the SplashScreen Thread splashTread = new Thread() { @Override public void run() { try { int waited = 0; while(_active && (waited < _splashTime)) { sleep(100); if(_active) { waited += 100; } } } catch(InterruptedException e) { // do nothing } finally { finish(); startActivity(new Intent("com.example.kostas.main")); stop(); } } }; splashTread.start(); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { _active = false; } return true; } 

第38行是stop();

我的应用程序开始没有问题,但我想修复它..我试图删除“停止();” 但我也得到另一个错误..

 11-06 02:44:56.321: E/(32599): onResume() check 0 11-06 02:44:56.321: E/(32599): onResume() check 1 11-06 02:44:56.321: E/Launcher(32599): setWindowOpaque() 11-06 02:44:56.341: E/(32599): onResume() check 2, mRestoring : false 11-06 02:44:56.341: E/(32599): onResume() check 3 11-06 02:44:56.341: E/(32599): onResume() check 4 11-06 02:44:56.345: E/(32599): onResume() check 5 

谢谢

答案在错误消息中:不推荐使用Thread.stop(),Android不支持不推荐使用的方法。

也许您可以尝试在onCreate中使用Thread.sleep()来代替超时。

Thread.stop()已被弃用一段时间了:

这种方法本质上是不安全的。 使用Thread.stop停止一个线程会导致它解锁它已锁定的所有监视器(这是未经检查的ThreadDeathexception向上传播的自然结果)。 如果先前受这些监视器保护的任何对象处于不一致状态,则受损对象对其他线程可见,可能导致任意行为。 stop的许多用法应该由代码修改,该代码只是修改某个变量以指示目标线程应该停止运行。 目标线程应定期检查此变量,如果变量指示它将停止运行,则以有序的方式从其run方法返回。 如果目标线程等待很长时间(例如,在条件变量上),则应使用中断方法来中断等待。

简而言之,您不应该调用stop() 。 如果你在删除stop()时添加一些关于你的其他错误的详细信息,也许有人也可以帮助你。

 thread.stop() is deprecated method so you have to remove that line from your code.