我已经编写了一个函数来创建一个启动画面,我的应用程序超时5秒.
代码工作正常,但是当超时达到零并且我想重定向到我的主要活动时,应用程序崩溃并出现以下错误:
Only the original thread that created a view hierarchy can touch its views.
Run Code Online (Sandbox Code Playgroud)
所以我环顾了一下,有人建议在我的功能中嵌套这个.这似乎是一个好主意,但现在像睡眠/停止的方法将无法正常工作.
我的代码在下面,我可以提供更多/详细解释,如果不够清楚,请告诉我.谢谢您的帮助.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
showSplashScreen();
}
protected boolean _active = true;
protected int _splashTime = 5000; // Splash screen is 5 seconds
public void showSplashScreen() {
setContentView(R.layout.splash_layout);
// Thread splashThread = new Thread() {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
int waited = 0;
while (_active && (waited < _splashTime)) {
Thread.sleep(100);
if (_active) {
waited += 100;
}
}
} catch (InterruptedException e) {
// do nothing
} finally {
showApplication();
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
可能不是你想听到的,但你永远不应该在你的移动应用程序上放置一个闪屏.除了游戏,当人们使用他们想要进入的移动应用程序时,做他们需要做的事情,然后离开.如果你让这个过程需要更长的时间,人们就会对你的应用程序感到沮丧.您可能应该重新考虑不使用启动画面.
| 归档时间: |
|
| 查看次数: |
221 次 |
| 最近记录: |