これが私の最初の質問であり、私はまだ Android 初心者です (うまくいけば) ので、ばかげた質問をしている場合はご容赦ください。
私は Android アプリケーションに取り組んでおり、スプラッシュ スクリーンを作成する必要があります。この回答を使用して作成しました:スプラッシュ画面を作成するにはどうすればよいですか? . それは非常にうまく機能していますが...このソリューションは、アプリケーションの残りの部分に別の大きなスレッドを作成し、それを回避しようとしています-アプリケーション全体(別のアプリスレッド)が遅くなると思います. 私は正しいですか?
プロセス全体を反転しようとしました-MainMenuアクティビティを呼び出してから、スプラッシュ用に別のスレッドを作成しています:
public class MainMenu extends Activity implements OnItemClickListener {
private GridView gridView;
private AlertDialog.Builder dialog;
private Intent intent;
private ApplicationPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
prefs = new ApplicationPreferences(this);
setTheme(prefs.GetApplitacionTheme());
SQLDatabase.onCreate();
if (prefs.SplashScreenEnabled()) {
new Runnable() {
@Override
public void run() {
startActivity(new Intent(MainMenu.this, SplashScreen.class));
}
}.run();
}
super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu);
gridView = (GridView)findViewById(R.id.gridView);
gridView.setAdapter(new AdapterMainMenu(this));
gridView.setOnItemClickListener(this);
}
次に、私の SplashScreen アクティビティで:
public class SplashScreen extends Activity {
private Locale locale;
private Configuration config;
private ApplicationPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
}
@Override
protected void onResume() {
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finish();
}
onCreate() Android が onResume() を呼び出した後、ここでスレッドを一時停止し、その後アクティビティを終了することにしました。
アプリケーションがメイン スレッドに戻るとクラッシュし、その理由がわかりません。私は何を間違っていますか?
前もって感謝します!ウンギス