在开发一个android应用软件时,考虑如何关闭应用程序的问题。一开始采用当前Activity调用finish()来完成,但这种做法是不对的。 这几天通过阅读Android的frameworks层代码时,发现平台提供了关闭程序的方法。 在ActivityManager类中提供了如下的方法:
如下:
/**
* Have the system perform a force stop of everything associated with
* the given application package. All processes that share its uid
* will be killed, all services it has running stopped, all activities
* removed, etc. In addition, a {@link Intent#ACTION_PACKAGE_RESTARTED}
* broadcast will be sent, so that any of its registered alarms can * be stopped, notifications removed, etc.
*
* You must hold the permission * {@link android.Manifest.permission#RESTART_PACKAGES} to be able to
* call this method.
*
* @param packageName The name of the package to be stopped.
*/
public void restartPackage(String packageName) {
try {
ActivityManagerNative.getDefault().restartPackage(packageName);
} catch (RemoteException e) { } }
ok,我们只需要取得ActivityManager的实例,并调用该方法即可正常关闭应用。 以下是关闭程序的代码片段:
private void exit2() {
ActivityManager actMgr = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE);
actMgr.restartPackage(getPackageName()); }
调用上述方法就能彻底地关闭掉程序,一般仅仅调用finish()是无法彻底关闭程序的。 但要注意一点,调用系统服务需要在AndroidManifest.xml文件中增加权限。

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android EditText控件自动获取焦点弹出键盘解决方法
  5. Unity3d调用android中的方法
  6. android——彻底关闭——应用程序
  7. 五.在Android中实现线程的方法
  8. android之调用webservice 实现图片上传
  9. Android常见Exception解决方法

随机推荐

  1. php有序列表或数组中删除指定的值的实现
  2. 放大镜效果2 (这个有点问题)
  3. PHP中多字节字符串操作实例详解
  4. 如何学习插画绘画?插画绘画学习技巧
  5. 放大镜效果
  6. JS中for,for...in,for...of和forEach的区
  7. php之php.ini配置文件讲解案例
  8. php中array_pad()函数用法及实例
  9. PHP之mysql位运算案例讲解
  10. PHP格式化显示时间date()函数案例讲解