iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android结束进程的方法详解
  • 613
分享到

Android结束进程的方法详解

进程方法Android 2022-06-06 08:06:59 613人浏览 八月长安
摘要

本文实例讲述了Android结束进程的方法。分享给大家供大家参考,具体如下: 最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。 在Andr

本文实例讲述了Android结束进程的方法。分享给大家供大家参考,具体如下:

最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。

在Android平台下,结束进程的方法还是比较多的。首先指明,此处的“结束进程”,包含了结束自身进程和结束其他进程两个方面。通过查阅SDK文档和网上的一些资料,自己找到一些结束进程的方法。在这里做一些归纳和总结,文章的部分信息有可能来自网上已有的文章和帖子,由于过了比较长时间,所以若发现本文与其他文章雷同,请谅解。

一、结束一个活动Activity

要主动的结束一个活动Activity,(先强调一下,是结束一个活动,而不是进程)众所周知,肯定是finish方法啦,这个就毋庸置疑了,而且这个方法最后会调用Activity的生命周期函数onDestroy方法,结束当前的Activity,从任务栈中弹出当前的Activity,激活下一个Activity。当然其他的finish系列方法,我们不在这里做详细讨论,有兴趣的同学可以自己查阅一下SDK 的文档。

二、强制结束当前的进程

强行结束当前进程有两个方法。(呵呵,这里就是结束进程了)

1、killProcess(int pid) 例子:


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

对于这个方法,需要详细解释一下。在SDK的文档中,解释如下:

Kill the process with the given PID. Note that, though this api allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes created by that app; packages sharing a common UID will also be able to kill each other's processes.

英语不好,不能准确翻译,所以希望大家自己理解,免得对大家造成误解。我个人对这句话的解释就是,这个方法使用是有条件的:

a、将被杀掉的进程 和 当前进程 处于同一个包或者应用程序中;

b、将被杀掉的进程 是由当前应用程序所创建的附加进程;

c、将被杀掉的进程 和 当前进程 共享了普通用户的UID。(这里的普通用户,是相对于Root权限的用户来说的)

2、System.exit(int code) 例子:


System.exit(0);

该方法只能用于结束当前进程自身,个人觉得在程序遇到异常,无法正常执行时,可以通过这个方法强制退出。

需要注意的是,这两个方法,会导致进程非正常退出,就是说,进程退出时不会去执行onPause、onStop和onDestroy方法,那么进程很有可能错过了保存数据的机会。因此,这两个方法最好使用在出现异常的时候!

三、结束另一个进程

要通过一个进程去结束另一个进程。在之前的SDK版本中,一直使用方法restartPackage(packageName)方法,但是在Android的开发文档中介绍说,这个函数会导致一些问题( the previous behavior here is no longer available to applications because it allows them to break other applications by removing their alarms, stopping their services, etc.),所以建议大家使用一个新的方法:

void killBackgroundProcesses(String packageName)

由于这个方法没有返回值,所以我们也不知道我们的目标进程是否真的退出了。但是,我目前只发现了这个可以结束另一个进程的方法。

四、退出到主屏幕(记得是对当前进程的处理)

这个方法,也是退出当前进程的一个方法。如果我们在进程中创建了很多的Activity,但是又不想关闭时去退出不在任务栈顶的Activity,那么就可以直接使用这个方法了。这个方法是通过查阅网上资料看到的。具体可参考本站文章《Android 按后退键退出Android程序的实现方法》

功能:当按下返回键时,就返回到主屏幕,并带有参数FLAG_ACTIVITY_CLEAR_TOP,会清理掉当前的活动。


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // 按下的如果是BACK,同时没有重复
        Intent home = new Intent(Intent.ACTION_MAIN);
        home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        home.addCateGory(Intent.CATEGORY_HOME);
        startActivity(home);
    }
    return super.onKeyDown(keyCode, event);
}

此方法确实结束了当前进程,但是通过Android平台的App Manager工具去查看的话,使用2.3.3的模拟器,会发现刚刚被结束的进程会以Cached background Process的形式存在,并且模拟器给出了解释,说是为了下一次更快捷的启动这个进程。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android调试技巧与常见问题解决方法汇总》、《Android开发入门与进阶教程》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

您可能感兴趣的文章:Android应用开发SharedPreferences存储数据的使用方法Android 动画之TranslateAnimation应用详解Android 动画之ScaleAnimation应用详解Android开发中多进程共享数据简析Android 多进程资料总结Android 进程间通信实现原理分析Android应用程序四大组件之使用AIDL如何实现跨进程调用ServiceAndroid编程防止进程被第三方软件杀死的方法解析后台进程对Android性能影响的详解Android中应用多进程的整理总结


--结束END--

本文标题: Android结束进程的方法详解

本文链接: https://www.lsjlt.com/news/25476.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android结束进程的方法详解
    本文实例讲述了Android结束进程的方法。分享给大家供大家参考,具体如下: 最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。 在Andr...
    99+
    2022-06-06
    进程 方法 Android
  • linux结束进程的方法是什么
    在Linux中,可以使用以下方法之一来结束进程:1. 使用kill命令:kill命令用于发送信号给指定进程。可以使用以下命令结束进程...
    99+
    2023-08-25
    linux
  • Linux下结束进程的方法有哪些
    这篇文章主要介绍了Linux下结束进程的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用命令行或字符终端界面Ctrl + C在命令行中调用 gedit (如果您没...
    99+
    2023-06-27
  • 详解Android进程保活的方法
    关于 Android 平台的进程保活这一块,想必是所有 Android 开发者瞩目的内容之一。你到网上搜 Android 进程保活,可以搜出各种各样神乎其技的做法,绝大多数都是...
    99+
    2022-06-06
    方法 Android
  • python结束线程的方法有哪些
    Python结束线程的方法有以下几种:1. 使用`threading`模块的`Thread`类提供的`join()`方法。调用该方法...
    99+
    2023-08-24
    python
  • Android编程实现AIDL(跨进程通信)的方法详解
    本文实例讲述了Android编程实现AIDL(跨进程通信)的方法。分享给大家供大家参考,具体如下: 一. 概述: 跨进程通信(AIDL),主要实现进程(应用)间数据共享功能。 ...
    99+
    2022-06-06
    进程 方法 aidl 通信 Android
  • java强行结束线程的方法是什么
    Java中强行结束线程的方法是使用Thread类的interrupt()方法。该方法会向线程发送一个中断信号,如果线程处于阻塞状态,...
    99+
    2023-08-30
    java
  • java强制结束线程的方法是什么
    在Java中,强制结束线程的方法有以下几种:1. 使用volatile变量:可以设置一个volatile类型的boolean变量,当...
    99+
    2023-08-24
    java
  • win7任务管理器无法结束进程怎么解决
    今天小编给大家分享一下win7任务管理器无法结束进程怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。win7任务管理器...
    99+
    2023-07-01
  • Mac 上查看端口占用情况并结束进程的方法
    标题:Mac 上查看端口占用情况并结束进程的方法 在 Mac 上,如果你想查看当前系统中哪些进程正在占用特定的端口,并且需要结束某个进程以释放端口,下面是一些方法可以帮助你完成这些任务。 步骤1:打开终端应用 在 Launchpad 或者...
    99+
    2023-08-16
    macos linux 服务器
  • python中的psutil模块详解(cpu、内存、磁盘情况、结束指定进程)
    目录获取CPU信息获取内存信息获取磁盘信息获取网络信息获取进程信息结束指定进程方法一方法二获取CPU信息 我们先来获取CPU的信息: >>> import psut...
    99+
    2023-05-17
    python  psutil python  psutil模块 python  psutil内存
  • Android工程:引用另一个Android工程的方法详解
    现在已经有了一个Android工程A。我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了另外一个Android工程B,想在B中引用A。 一个思路是把工程A做成纯Jar包...
    99+
    2022-06-06
    方法 Android
  • Java判断线程是否结束的方法有哪些
    小编给大家分享一下Java判断线程是否结束的方法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法1通过Thread类中的isAlive()方法判断线程是否...
    99+
    2023-06-29
  • Android编程实现闹钟的方法详解
    本文实例讲述了Android编程实现闹钟的方法。分享给大家供大家参考,具体如下: 在Android中,有一个闹钟的类,AlarmManager类,我们可以通过其来对系统内的通知...
    99+
    2022-06-06
    方法 闹钟 Android
  • 详解Android中解析XML的方法
    XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android...
    99+
    2022-06-06
    解析xml XML 方法 Android
  • Android编程闹钟设置方法详解
    本文实例讲述了Android编程闹钟设置方法。分享给大家供大家参考,具体如下: 闹钟在生活中最常见了,在Android中可以通过AlarmManager来实现闹钟,AlarmM...
    99+
    2022-06-06
    方法 闹钟 Android
  • Java结束线程的三种方法及该如何选择
    目录1.使用退出标志2.使用interrupt方法3.使用stop方法来结束线程4.结束方法的选择java常用的结束一个运行中的线程的方法有3中:使用退出标志,使用interrupt...
    99+
    2022-11-11
  • Java如何判断线程是否结束的三种方法
    目录方法1方法2方法3方法1 通过Thread类中的isAlive()方法判断线程是否处于活动状态。 线程启动后,只要没有运行完毕,都会返回true。 【注】如果只是要等其他线程运行...
    99+
    2022-11-13
  • 详解android webView独立进程通讯方式
    为什么需要将webView放在独立进程 webView 加载网页的时候可能占用大量内存,导致应用程序OOM。 webView 在访问结束的时候可以直接杀死该进程,防止内存泄漏。 webView 在崩溃的时候不影响主进程。webView...
    99+
    2023-05-30
    android 独立进程 roi
  • Android编程获取GPS数据的方法详解
    本文实例讲述了Android编程获取GPS数据的方法。分享给大家供大家参考,具体如下: GPS是Android系统中重要的组成部分,通过它可以衍生出众多的与位置相关的应用。 A...
    99+
    2022-06-06
    方法 gps Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作