Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Java 从我的应用关闭应用_Java_Android_Android Intent - Fatal编程技术网

Java 从我的应用关闭应用

Java 从我的应用关闭应用,java,android,android-intent,Java,Android,Android Intent,我开发了一个应用程序,它可以密码保护另一个应用程序(比如应用程序A)。因此,当我尝试打开应用程序A时,一个活动会弹出在一个应用程序顶部,提示用户输入密码。输入不正确时,它应关闭该活动,并关闭其正下方的应用程序A 现在,我尝试使用以下代码执行此操作: List<ActivityManager.RunningAppProcessInfo> pids = Unlock.am.getRunningAppProcesses(); for(int i = 0

我开发了一个应用程序,它可以密码保护另一个应用程序(比如应用程序A)。因此,当我尝试打开应用程序A时,一个活动会弹出在一个应用程序顶部,提示用户输入密码。输入不正确时,它应关闭该活动,并关闭其正下方的应用程序A

现在,我尝试使用以下代码执行此操作:

List<ActivityManager.RunningAppProcessInfo> pids = Unlock.am.getRunningAppProcesses();
                   for(int i = 0; i < pids.size(); i++)
                   {
                       ActivityManager.RunningAppProcessInfo info = pids.get(i);
                       if(info.processName.equalsIgnoreCase("com.A")){
                          pid = info.pid;
                          break;
                       } 
                   }
                android.os.Process.killProcess(pid);
List pids=Unlock.am.getRunningAppProcess();
对于(int i=0;i
但它不起作用

后来我意识到这可能是因为应用程序A的进程不是我的应用程序进程的直接子进程(也就是说,我的应用程序没有调用应用程序A)。那么,我是否可以关闭但不一定从我的应用程序中删除应用程序A?我的意思是,杀掉应用程序A是可选的,但关闭它是强制性的

ActivityManager activityManager = (ActivityManager) context.getSystemService("activity");
activityManager.killBackgroundProcesses("com.A");
您需要将以下权限添加到清单中

 <uses-permission> android:name="android.permission.KILL_BACKGROUND_PROCESSES" </uses-permission> 
android:name=“android.permission.KILL\u后台\u进程”

我不知道如何终止另一个应用程序进程。但输入错误的密码后,您可以将用户带到主屏幕

private void launchHomeScreen() {
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);
    finish(); // finish our Activity (based on your requirement)
}

可接受的变通办法。现在,我必须围绕它重新构造代码。:)谢谢我对android不太熟悉,但是不可能先获取另一个应用程序的活动引用,然后再
finish()
it?在这种情况下,要获取该活动的引用,我必须从我的应用程序启动它,这不是我想要的(目前为止)。所以这是不可行的。