如果对于显示初始屏幕的时间没有特定限制,则可以通过
AsyncTask以下方式使用:
public class SplashScreen extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_startup); startHeavyProcessing(); } private void startHeavyProcessing(){ new LongOperation().execute(""); } private class LongOperation extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { //some heavy processing resulting in a Data String for (int i = 0; i < 5; i++) { try { Thread.sleep(1000); } catch (InterruptedException e) { Thread.interrupted(); } } return "whatever result you have"; } @Override protected void onPostExecute(String result) { Intent i = new Intent(SplashScreen.this, MainActivity.class); i.putExtra("data", result); startActivity(i); finish(); } @Override protected void onPreExecute() {} @Override protected void onProgressUpdate(Void... values) {} }}如果结果数据不是字符串,则可以将
Parcelable对象作为活动的额外内容。在
onCreate你可以检索数据:
getIntent().getExtras.getString('data');


