Таким образом, общий подход к действиям на экране-заставке выглядит примерно так:
public class SplashActivity extends Activity
@override
protected void onResume() {
//Create a thread
new Thread(new Runnable() {
public void run() {
//Do heavy work in background
((MyApplication)getApplication()).loadFromDb();
startActivity(new Intent(SplashActivity.this, MainActivity.class));
finish(); //End this activity
}
}).start();
}
}
Проблема, которую я обнаружил для этого случая, заключается в том, что когда приложение находится в фоновом режиме и оно получает память, когда вы возвращаете его на передний план, снова вызывается Application.onCreate, действие Splash не вызывается, а вместо этого любое действие было открыто когда приложение перешло в фоновый режим, открывается. Как убедиться, что в этой ситуации запускается SplashScreen?
Edit1: Кстати, я попытался установить android:clearTaskOnLaunch="true" для активности экрана-заставки, но, похоже, это ничего не дало.