我正在创建一个应用程序,我想确保只有一个活动的一个实例应该保留在堆栈中。请告诉我如何实现它。这是我正在尝试的编码,但没有得到预期的结果。
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.
}
提前致谢
答案 0 :(得分:1)
答案 1 :(得分:0)
将“finish()”命令放在活动的onStop()或onPause()方法中。因此,每次退出此活动时,它都将从活动堆栈中删除,因此不会有重复。
答案 2 :(得分:0)
您可以在启动活动时设置意图标记。在您的情况下FLAG_ACTIVITY_SINGLE_TOP
和FLAG_ACTIVITY_CLEAR_TOP