我怎么能杀Android的进程?(How can I kill processes in Andro

2019-07-05 02:13发布

我有下面这段代码:

package com.example.killall;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
//import android.widget.TextView;
import android.app.ActivityManager;

public class MainKill extends Activity {

private Button BprocessesKill ;
//private TextView processesKill;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_kill);

    final ActivityManager am=(ActivityManager)     getSystemService("SYSTEM_ACTIVITY");

    BprocessesKill=(Button) this.findViewById(R.id.BkillProcesses);
    //processesKill=(TextView) this.findViewById(R.id.killProcesses);



    BprocessesKill.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            am.killBackgroundProcesses(getPackageName());

        }
    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main_kill, menu);
    return true;
}

}

所有我想要做的就是简单地按下按钮,杀死所有后台进程。我有这个代码的问题是,当我按下按钮,它让我看到消息:不幸的是KillAll(这是我的应用程序的名字)已经停止。 我应该怎么改?

Answer 1:

  1. 你得到的消息表明您的应用程序崩溃。 你需要看一下它的logcat找出原因。 这是Android开发者指南中介绍。
  2. 请说出你的理由杀死所有后台进程,因为我想不出任何合适的理由这样做。 人坚持声称“任务杀手”或者“杀手应用程序”提高性能,但是这种态度忽视了真正的问题:写得不好的应用程序。 只要我们不断宣称任务杀手的帮助下,用户会继续使用留下不必要的服务等正在运行的应用。 强迫用户使用任务杀手是像通过一次杀一个白蚁当你看到他们有白蚁处理问题。 真正的答案是消灭所有的白蚁。

总之,谁告诉您如何杀死所有的后台进程是在帮你帮倒忙和Android社区帮倒忙。



Answer 2:

我用这个代码来杀了我自己的进程(应用程序):

    android.os.Process.killProcess(android.os.Process.myPid());


Answer 3:

您可以使用此代码:

List<ApplicationInfo> packages;
    PackageManager pm;
    pm = getPackageManager();
    //get a list of installed apps.
    packages = pm.getInstalledApplications(0);

    ActivityManager mActivityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);

   for (ApplicationInfo packageInfo : packages) {
        if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue;
        if(packageInfo.packageName.equals("mypackage")) continue;
        mActivityManager.killBackgroundProcesses(packageInfo.packageName);
   }  

资源

请记住,这是非常危险的杀应用程序。 如果你并不确切地知道自己在做什么,不要使用此代码,请!



文章来源: How can I kill processes in Android?