如何杀死我在android中的所有活动?
我正在开发一个Android应用程序,几乎没有像A、B、C、D这样的视图。这里D是我的家庭活动。我的导航就像A->B->C->D。一旦我到达活动D,当我尝试按下后退按钮时,所有之前的活动(A、B、C)都应该关闭。我不能开始像finish这样的叫做调用新活动的活动。请提供一种终止应用程序活动的方法 在这里,我使用了一些代码来完成所有活动,但没有得到结果如何杀死我在android中的所有活动?,android,android-activity,android-manifest,Android,Android Activity,Android Manifest,我正在开发一个Android应用程序,几乎没有像A、B、C、D这样的视图。这里D是我的家庭活动。我的导航就像A->B->C->D。一旦我到达活动D,当我尝试按下后退按钮时,所有之前的活动(A、B、C)都应该关闭。我不能开始像finish这样的叫做调用新活动的活动。请提供一种终止应用程序活动的方法 在这里,我使用了一些代码来完成所有活动,但没有得到结果 ActivityManager manager = (ActivityManager) this.getSystemService(ACTIVI
ActivityManager manager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> list = manager.getRunningAppProcesses();
if(list != null)
{
for(int i=0;i<list.size();++i) {
if(getApplicationContext().getPackageName().matches(list.get(i).processName)) {
int pid = android.os.Process.getUidForName(getApplicationContext().getPackageName());
android.os.Process.killProcess(pid);
}
else {
debug.log("app not killed");
}
}
}
ActivityManager=(ActivityManager)this.getSystemService(ACTIVITY_服务);
List=manager.getRunningAppProcesses();
如果(列表!=null)
{
对于活动的onPause()
中的(int i=0;i设置一个类似public static boolean kill=true;
的标志
现在在活动A、B、C的onResume()
检查是否终止,然后调用finish();
在活动的onPause()
中设置一个类似公共静态布尔kill=true;
的标志
现在在活动A、B、C的onResume()
检查是否终止,然后调用finish();
您可以通过两种方式执行此操作:
当您从活动A开始B活动时,您可以通过这种方式为意图设置一个标志
Intent i = new Intent(A.this, B.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i);
从B到C,从C到D做同样的事情
或
启动活动后,调用finish()
这将启动活动B并完成活动A,因此当您单击“上一步”时,将不会返回到活动
Intent i= new Intent(A.this, B.class);
startActivity(i);
finish();
您可以通过两种方式执行此操作:
当您从活动A开始B活动时,您可以通过这种方式为意图设置一个标志
Intent i = new Intent(A.this, B.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i);
从B到C,从C到D做同样的事情
或
启动活动后,调用finish()
这将启动活动B并完成活动A,因此当您单击“上一步”时,将不会返回到活动
Intent i= new Intent(A.this, B.class);
startActivity(i);
finish();
我对相同问题的解决方法:
声明一个具有活动堆栈和公共静态clearAll方法的单例,该方法迭代堆栈,完成所有活动
然后,我声明一个StackedActivity扩展活动,它将用于我的应用程序的所有活动
在StackedActivity onCreate方法中,我将实例添加到堆栈单例中,当我想完成所有操作时,只需调用clearAll方法。我对同一问题的解决方法:
声明一个具有活动堆栈和公共静态clearAll方法的单例,该方法迭代堆栈,完成所有活动
然后,我声明一个StackedActivity扩展活动,它将用于我的应用程序的所有活动
在StackedActivity onCreate方法中,我将实例添加到堆栈单例中,当我想完成所有操作时,只需调用clearAll方法。感谢所有回答我问题的人。最后我得到了问题的解决方案。我通过使用intent intent.FLAG\u ACTIVITY\u CLEAR\u TOP解决了这个问题。下面是对我的场景的解释。
假设我在活动D中。我的实际流程是A->B->C->D。我想终止我以前的活动A、B、C。我过去从活动D开始时调用我的第一个活动A。
因此,我添加了意图标志\活动\清除\顶部来调用活动A。因此中间的活动将被清除,并且只显示活动A。我将一些标志值作为意图附加值传递给活动A。如下所示
Intent intent = new Intent(D.this,A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("finishstatus", true);
this.startActivity(intent);
this.finish();
我正在检查类似活动A的onCreate方法中的bundle值
bundle = this.getIntent().getExtras();
if(bundle!= null)
{
boolean isActivityToBeFinish = this.getIntent().getExtras().getBoolean("finishstatus");
if(isActivityToBeFinish)
{
finish();
}
}
如果状态值可用且为真,则我也将完成活动A。因此,我的问题被清除,我将成功完成之前的所有活动
可能是我的解释不好,但会很好地工作。感谢所有回答我问题的人。最后我找到了问题的解决方案。我通过使用intent intent.FLAG\u ACTIVITY\u CLEAR\u TOP解决了这个问题。下面是我的场景解释。
假设我在活动D中。我的实际流程是A->B->C->D。我想终止我以前的活动A、B、C。我过去从活动D开始时调用我的第一个活动A。
因此,我添加了意图标志\活动\清除\顶部来调用活动A。因此中间的活动将被清除,并且只显示活动A。我将一些标志值作为意图附加值传递给活动A。如下所示
Intent intent = new Intent(D.this,A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("finishstatus", true);
this.startActivity(intent);
this.finish();
我正在检查类似活动A的onCreate方法中的bundle值
bundle = this.getIntent().getExtras();
if(bundle!= null)
{
boolean isActivityToBeFinish = this.getIntent().getExtras().getBoolean("finishstatus");
if(isActivityToBeFinish)
{
finish();
}
}
如果状态值可用且为真,则我也将完成活动A。因此,我的问题被清除,我将成功完成之前的所有活动
也许我的解释不好,但会很好地发挥作用。完成它:
Activity_name.this.finish();
至于杀人:
android.os.Process.killProcess(android.os.Process.myPid());
完成它:
Activity_name.this.finish();
至于杀人:
android.os.Process.killProcess(android.os.Process.myPid());
用于完全完成应用
我确认您正在启动程序活动或主活动中,您不想从中恢复应用程序
1.完成你的活动
2.android:excludeFromRecents=“true”在清单中用于完全完成应用程序
我确认您正在启动程序活动或主活动中,您不想从中恢复应用程序
1.完成你的活动
2.android:excludeFromRecents=“true”在清单中使用
finishActivity()
开始活动后使用
finishActivity()
开始活动后如果用户在活动B或C中,您希望用户能够向后导航吗?是的。我能够在B和CDo之间导航您希望用户在活动B或C中能够向后导航吗?是的。如果有问题,我能够在B和Ci之间导航。您可以回答same、 我有个问题要问,你也可以回答。