0

単一のアクティビティのインスタンスが 1 つだけスタックに残るようにしたいアプリケーションを作成しています。それを達成する方法を教えてください。これは私が試していたコーディングですが、意図した結果が得られませんでした。

ArrayList<String> runningactivities = new ArrayList<String>();

    ActivityManager activityManager = (ActivityManager)getBaseContext().getSystemService (Context.ACTIVITY_SERVICE); 

    List<RunningTaskInfo> services = activityManager.getRunningTasks(Integer.MAX_VALUE); 

        for (int i1 = 0; i1 < services.size(); i1++) { 
            runningactivities.add(0,services.get(i1).topActivity.toString());  
        } 

        if(runningactivities.contains("ComponentInfo{com.velosys.interview_preparation/com.velosys.interview_preparation.activities.MCQ}")==true){
             Toast.makeText(getBaseContext(),"Activity is in foreground, active",1000).show(); 
            //MCQ.
        }

前もって感謝します

4

3 に答える 3

1

これはActivity Launch Modeの典型的なケースです。

公式の Android ドキュメントはかなり正確で首尾一貫しています。

パラグラフandroid:launchModeを確認してください。singleTaskモードは、あなたが探しているものかもしれません。

于 2012-08-23T16:34:41.253 に答える
0

アクティビティの起動中にインテント フラグを設定できます。あなたの場合FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_CLEAR_TOP

于 2012-08-23T17:12:44.730 に答える
0

アクティビティの onStop() または onPause() メソッド内に「finish()」コマンドを配置します。したがって、このアクティビティを終了するたびにアクティビティ スタックから削除されるため、重複はありません。

于 2012-08-23T16:34:02.447 に答える