0

我正在编写一个应用程序,它可以在正常运行之前从网络上获取信息。因此,我编写了一个 InitialActivity,它在启动时显示一个加载屏幕。此初始屏幕上的按钮允许您在等待时转到 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。

提前致谢。

4

1 回答 1

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);
于 2013-10-28T10:13:31.873 回答