我的应用程序在使用 4.x 设备时遇到问题。看起来一个线程在更改活动(从启动屏幕到实际应用程序)时使其崩溃。这是一个屏幕截图:
启动活动代码为:
public class Splash extends Activity {
protected boolean _active = true;
protected int _splashTime = 3000; // tempo di permanenza spash screen
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
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();
Intent i = new Intent(Splash.this, Test01Activity.class);
startActivity(i);
stop();
}
}
};
splashTread.start();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
_active = false;
}
return true;
}
}
此外,应用程序并没有真正崩溃,因为主要活动一直在后台工作(在“不幸的是,应用程序已停止工作”警报背后)。此问题仅在 4.x 设备中发现,2.x 和 3.x 都可以正常工作。错误在第 37 行。