4

ABCという3つのアクティビティがあり、アクティビティAからBに行き、都市を検索し、アクティビティBからアクティビティcに行き、非同期タスクに入れたものを保存します。これはActivit Aリストビューに保存されます。問題は、リストに保存した後、[戻る] ボタンを押したときに、以前に保存した名前が保存されていないアクティビティ A が再び表示されることです。

private class Savecity extends AsyncTask<city, String, String> {

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            if(result != null && result.equals("sucess")){

            Intent intent = new Intent(activity, cityActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            startActivity(intent);}

        }
        @Override
        protected String doInBackground(city... arg0) {
            try {
                ((CityPreferences) activity.getApplication()).createcity(arg0[0]);

                return "sucess";
            } catch (Exception e) {
                Log.e(TAG, "", e);
                return "fail";
            }
        }
4

2 に答える 2

21

AndroidManifest.xml ファイルからこれを実装できます。必要なものに属性を追加するだけandroid:noHistory="true"です<activity>

お役に立てれば..

于 2012-12-06T10:59:35.620 に答える
11

実際にアクティビティで activityCを再呼び出ししようとしている場合、必要なことはactivity-stackAをクリアすることだけです。例えば:

Intent i = new Intent(getBaseContext(), Activity_A.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
于 2012-12-06T11:08:35.047 に答える