我正在编写一个应用程序,它可以在Web正常运行之前从Web获取信息。因此,我编写了一个初始活动,显示启动时的加载屏幕。 此初始屏幕上的按钮允许您在等待时转到InfoActivity。如果在InfoActivity运行时加载完成,则此InfoActivity将停止,并且InitialActivity的MainActivity将启动。
InitialActivity包含启动InfoActivity的方法。使用内部类定义的AsyncTask从网页加载。如果加载成功,则onPostExecute()方法将启动mainactivity。
public class InitialActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_initial);
new RequestTask().execute(getString(R.string.website));
}
public void startInfoActivity(View v){
Intent i = new Intent(this, InfoActivity.class);
startActivity(i);
}
private class RequestTask extends AsyncTask<String, Void, Boolean>{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Boolean doInBackground(String... uri){
//DO THE INFORMATION FETCHIN
}
@Override
protected void onPostExecute(Boolean passed) {
super.onPostExecute(passed);
if(passed){
//SAVE THE FETCHED INFORMATION
//close this activity and lauch main activity
Intent i = new Intent(InitialActivity.this, MainActivity.class);
startActivity(i);
// close this activity
finish();
}
}
当AsyncTask中的加载完成后,有没有办法阻止InfoActivity的自动关闭?当用户选择离开InfoActivity时,MainActivity应该显示。
提前致谢。
答案 0 :(得分:0)
试试这个
使用此代码更改onPostExecute方法。
Intent intent = new Intent(MainActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);