Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何杀死我在android中的所有活动?_Android_Android Activity_Android Manifest - Fatal编程技术网

如何杀死我在android中的所有活动?

如何杀死我在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

我正在开发一个Android应用程序,几乎没有像A、B、C、D这样的视图。这里D是我的家庭活动。我的导航就像A->B->C->D。一旦我到达活动D,当我尝试按下后退按钮时,所有之前的活动(A、B、C)都应该关闭。我不能开始像finish这样的叫做调用新活动的活动。请提供一种终止应用程序活动的方法

在这里,我使用了一些代码来完成所有活动,但没有得到结果

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、 我有个问题要问,你也可以回答。