转载自:http://dev.10086.cn/cmdn/bbs/thread-41049-1-1
android 2.2以下杀进程方法:restartPackage();
android 2.2以上杀进程方法: android.os.Process.killProcess(android.os.Process.myPid());,但是如果直接调用它肯定不好使。解决方法如下:
public class MyActivity extends Activity
{
public static List activityList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
activityList .add(this);
}
@Override
protected void onDestroy()
{
super.onDestroy();
activityList .remove(this);
}
public static void killMyProcess()
{
for (Activity activity: activity)
{
activity.finish();
}
android.os.Process.killProcess(android.os.Process.myPid());
}
}
复制这段代码然后让你所有的Activity都继承它,调用方法killMyProcess()就OK了.
新增加:
原理是2.2以上的版本如果你的程序只有一个activity就可以杀掉进程,否则不能完全杀死进程。
所以我建了个链表用来缓存这些activity的实例,在杀死进程之前先finish掉你的activity(我没有考虑activity是singletask等情况),然后就可以直接掉android.os.Process.killProcess(android.os.Process.myPid())杀进程了。这个代码提供给真正需要用到的人,搞研究的闪一边去,尽然有人说我骗回复忽悠人,你们可以看看我发过的帖子哪个忽悠人的(转帖的我都标明好了的),我估计他也没有仔细看帖子,真的无语,现在的有些人太不尊重别人的劳动成果了。
------解决方案--------------------------------------------------------