0

正しく機能する前に Web から情報を取得するアプリケーションを作成しています。そのため、起動時に読み込み画面を表示する InitialActivity を作成しました。この初期画面のボタンを使用すると、待機中に InfoActivity に移動できます。InfoActivity の実行中に読み込みが完了すると、この InfoActivity が停止し、InitialActivity に続く MainActivity が開始されます。

InitialActivity には、InfoActivity を開始するメソッドが含まれています。Web ページからの読み込みは、内部クラスで定義された AsyncTask を使用して実行されます。ロードが成功すると、onPostExecute() メソッドがメイン アクティビティを開始します。

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 に答える