运行程序后,Logcat会显示一些错误(图片)。 但是在该程序运行并运行后没有问题。我无法理解问题出在哪里。
运行程序后,屏幕截图将显示5秒钟,然后显示该菜单(活动名称为Scroll_View)。现在,LogCat显示错误。 但是,当我点击每个按钮时,它可以正常工作,没有任何其他原因。
重要吗?
这是线程代码:
protected boolean _active = true;
protected int _splashTime = 5000;
@Override
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("mobilesoft.asia.malaysia_directory.SplashScreen.Scroll_View"));
stop();
}
}
};
splashTread.start();
}
答案 0 :(得分:5)
您收到此异常,因为不推荐使用Thread的方法stop()
和stop(Throwable)
,并且永远不应该使用它。
因为以这种方式停止线程是不安全的,并且可能使您的应用程序和VM处于不可预测的状态。
答案 1 :(得分:2)
屏幕截图显示您正在SplashScreen.java类中调用Thread.stop()(第35行)。 Thread.stop()
已被弃用了一段时间,因为它们陈旧,不安全并且可能对JVM产生负面影响(http://download.oracle.com/javase/1.4.2/docs/guide/misc/threadPrimitiveDeprecation .html),显然Dalvik VM不再支持这些线程方法了。你应该可以用其他东西替换Thread.stop()
调用 - 这个链接有一个很好的例子,说明你应该怎么做,而不是调用那些方法。