`

kill_processes杀掉进程+启动进程

阅读更多
MainActivity.java
package com.kill_processes.test;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
 private Button button_clear1,button_clear2,button_clear3,button_clear4,button_clear5;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        findViews();
        setListeners();
    }

    private void findViews() {
  // TODO Auto-generated method stub
        button_clear1=(Button) findViewById(R.id.button1);
        button_clear2=(Button) findViewById(R.id.button2);
        button_clear3=(Button) findViewById(R.id.button3);
        button_clear4=(Button) findViewById(R.id.button4);
        button_clear5=(Button) findViewById(R.id.button5);

 }

 private void setListeners() {
  // TODO Auto-generated method stub
   button_clear1.setOnClickListener(new OnClickListener() {   
    @Override
    public void onClick(View v) {
     // TODO Auto-generated method stub
     ActivityManager am=(ActivityManager) getSystemService(ACTIVITY_SERVICE);
     am.restartPackage("com.canmera.test");
     Toast.makeText(MainActivity.this, "restartPackage", Toast.LENGTH_SHORT).show();
    }
   });
   //方法2. killBackgroundProcesses(getPackageName()); 坏处:kill掉得Service会自动重启
   button_clear2.setOnClickListener(new OnClickListener() {   
    @Override
    public void onClick(View v) {
     // TODO Auto-generated method stub
     ActivityManager am=(ActivityManager) getSystemService(ACTIVITY_SERVICE);
     am.killBackgroundProcesses("com.canmera.test");
     Toast.makeText(MainActivity.this, "killBackgroundProcesses", Toast.LENGTH_SHORT).show();
    }
   });
   //反射调用forceStopPackage来结束进程
   button_clear3.setOnClickListener(new OnClickListener() {   
    @Override
    public void onClick(View v) {
     // TODO Auto-generated method stub
     ActivityManager am=(ActivityManager) getSystemService(ACTIVITY_SERVICE);
      try {
                Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);   
                forceStopPackage.setAccessible(true);
                forceStopPackage.invoke(am, "com.canmera.test");//com.canmera.test是要结束进程的包名
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

      Toast.makeText(MainActivity.this, "forceStopPackage", Toast.LENGTH_SHORT).show();
      
    }
   });
   //执行Linux命令结束进程
   button_clear4.setOnClickListener(new OnClickListener() {   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    Process p;
    int status = -1;
    try {
            p = Runtime.getRuntime().exec("killall -HUP com.canmera.test");//kill -9 com.canmera.test
      status = p.waitFor(); //status 0 indicator successed
      
      Toast.makeText(MainActivity.this, "status:"+status, Toast.LENGTH_SHORT).show();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  });
   
   //启动进程
   button_clear5.setOnClickListener(new OnClickListener() {   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    Process p;
    int status = -1;
    try {
            p = Runtime.getRuntime().exec("am start -n com.canmera.test/com.canmera.test.MainActivity");
      status = p.waitFor(); //status 0 indicator successed
      
      Toast.makeText(MainActivity.this, "status:"+status, Toast.LENGTH_SHORT).show();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace(); 
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  });
 }

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

 



manifest.xml:

    <uses-permission android:name="android.permission.RESTART_PACKAGES"/><!-- 关闭其他应用 -->
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/><!-- 关闭其他应用 -->
    <uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"/><!-- 强行关闭其他应用 -->

分享到:
评论

相关推荐

    kill_folder 专杀

    使用"kill_folder.exe"这个可执行文件,用户可以启动"kill_folder 专杀"工具来执行上述操作。通常,用户只需运行该程序,按照向导或提示进行操作,软件将自动完成病毒检测和清理过程。然而,值得注意的是,尽管这类...

    文件夹病毒专杀kill_folder2.12最新版

    《文件夹病毒专杀工具Kill_Folder 2.12详解》 在信息化时代,电脑病毒无处不在,其中文件夹病毒尤其让人头疼。这类病毒会感染用户的重要文件夹,导致数据丢失或系统瘫痪。为此,专业防病毒软件Kill_Folder应运而生...

    文件夹病毒专杀工具 kill_folder

    文件夹病毒专杀工具 kill_folder 文件夹病毒专杀工具 kill_folder

    Kill_AutoRun_1.2.rar

    《Kill_AutoRun_1.2 - 防止自动运行病毒工具详解》 在数字化时代,电脑安全问题日益凸显,尤其是自动运行(AutoRun)病毒成为许多用户头疼的问题。"Kill_AutoRun_1.2.rar" 文件正是针对这一问题提供的一种解决方案,...

    pskill 杀掉进程

    pskill pskill 杀掉进程,win2000等系统使用。 可杀掉系统进程

    kill_folder1.9

    2. 执行:双击"kill_folder.exe"启动软件,按照提示操作。 3. 插入U盘:将可能被病毒感染的U盘插入电脑。 4. 扫描:软件会自动检测U盘,并进行全盘扫描。 5. 查看结果:扫描完成后,软件会显示病毒检测报告,用户...

    Kill_Autorun.rar

    《Kill_Autorun:小巧而强大的自动运行病毒克星》 在数字时代,电脑安全问题日益突出,尤其是autorun病毒的肆虐,让许多用户深受其害。为此,诞生了一款名为"Kill_Autorun"的专业工具,它以其小巧的体积和强大的...

    VC++枚举并杀死(Kill)当前指定进程.zip_VC++6.0_kill_枚举进程

    在这个"VC++枚举并杀死(Kill)当前指定进程"的项目中,我们主要讨论的是如何使用VC++ 6.0来实现对系统中运行的进程进行枚举,并且根据用户指定的进程名称来终止该进程。以下将详细介绍这个过程中的关键知识点: 1....

    linux进程控制演示代码.rar_Linux kill_Linux 进程控制_researchfoc_进程控制

    例如,一个典型的用法可能是:父进程 `fork` 一个子进程,子进程执行某些任务,然后父进程通过 `kill` 发送信号给子进程,最后使用 `waitpid` 等待子进程结束并获取其退出状态。 在研究Linux进程控制时,了解这些...

    Kill_Autorun

    Kill_Autorun软件能够扫描并阻止这些通过自动运行功能启动的恶意程序,保护用户的电脑安全。 该软件的工作原理主要包括以下几个方面: 1. **扫描检测**:Kill_Autorun会对插入的U盘或者其他可移动存储设备进行全面...

    杀毒kill_folder_2.31_XiaZaiBa.

    在这种情况下,这很可能是“kill_folder”杀毒软件的启动程序,用于扫描、检测和处理系统中的威胁。 “下载吧下载说明.htm”可能是一个包含该软件下载和安装指南的HTML文档,向用户解释如何安全有效地下载和安装...

    杀掉Exe进程

    《深入理解"杀掉Exe进程":基于Delphi的KillProcess.exe工具解析》 在IT行业中,有时候我们需要对特定的进程进行管理和控制,比如在系统优化、软件调试或者安全维护时,可能需要终止某个执行中的exe进程。本文将...

    文件夹变EXE专杀kill_folder

    这个小软件专杀使文件夹变成exe格式的病毒,原文件夹仍会保留

    linux kill杀不掉进程的原因,及解决办法.zip

    linux kill杀不掉进程的原因,及解决办法.zip

    KP.zip_KP_kp 杀进程

    标题中的"KP.zip_KP_kp 杀进程"表明这是一个压缩包文件,其中包含一个名为"KP_kp"的程序,主要用于终止或“杀掉”运行中的进程。在计算机系统中,进程是指正在执行的程序实例,它们各自拥有独立的内存空间和资源。...

    python subprocess 杀掉全部派生的子进程方法

    ### Python Subprocess 杀掉全部派生的子进程方法 #### 概述 在Python编程中,使用`subprocess`模块来执行外部命令或程序是非常常见的需求。然而,在某些场景下,我们需要能够有效地终止这些子进程及其所有派生的...

    Oracle_Kill_Session_终极篇

    由于在查询结果中可能会出现比预期更多的进程,应仔细对比并仅针对那些以特定格式(如f1000开头的地址)标识的进程执行kill命令,避免误操作影响系统稳定。 #### 结论 在Oracle数据库环境中,有效地管理和控制...

    杀文件夹的工具kill_folder.exe

    kill_folder.exe 文件夹杀毒工具

    pb杀进程实例

    以下是一个简单的示例代码片段,展示了如何在PowerBuilder中使用OperatingSystem对象来杀死一个进程: ```pb // 创建OperatingSystem对象 OperatingSystem os = Create OperatingSystem // 假设我们要结束的进程名...

    蓝牙三国Kill_V2.1.0_正式版 内购破解直装版.apk

    蓝牙三国Kill_V2.1.0_正式版 内购破解直装版.apk

Global site tag (gtag.js) - Google Analytics