android停止进程
❶ android 怎么把进程结束掉
1、自己结束自己 this.finish();
2、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权限的用户来说的)
3、System.exit(int code)
例子:System.exit(0);
该方法只能用于结束当前进程自身,个人觉得在程序遇到异常,无法正常执行时,可以通过这个方法强制退出。
需要注意的是,这两个方法,会导致进程非正常退出,就是说,进程退出时不会去执行onPause、onStop和onDestroy方法,那么进程很有可能错过了保存数据的机会。因此,这两个方法最好使用在出现异常的时候!
4、killBackgroundProcesses(String packageName)
要通过一个进程去结束另一个进程。在之前的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.),所以建议大家使用一个新的方法:
由于这个方法没有返回值,所以我们也不知道我们的目标进程是否真的退出了。但是,我目前只发现了这个可以结束另一个进程的方法。此方法需要权限:
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
5、利用反射调用forceStopPackage来结束进程
Java代码
Method forceStopPackage = am.getClass().getDeclaredMethod("forceStopPackage", String.class);
forceStopPackage.setAccessible(true);
forceStopPackage.invoke(am, yourpkgname);
注意:
需要在manifest里加上shareid定义:android:sharedUserId="android.uid.system"
需要在manifest里加上权限:<uses-permission android:name="android.permission.FORCE_STOP_PACKAGES"></uses-permission>
需要采用系统platform签名,因为需要用FORCE_STOP_PACKAGES权限,该权限只赋予系统签名级程序,然后经编译环境重新编译,即可实现强制停止指定程序(本人亲自验证可行)
6、killall -HUP packageName || kill -9 pid
Java代码
String cmd="killall -HUP com.android.test";
try {
Process process = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println("exec shell: == " + line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
此方法理论上可行,但是应该需要系统级或底层的协助
❷ 电视盒总是出现 抱歉,进程"android.process.media"已停止运行是怎么回事
有两种情况可能会造成出现 抱歉,进程"android.process.media"已停止运行。第一种是因为删除或停用了“音乐”这个程序造成的。第二种android.process.media”已停止运行的现象,这个进程是访问媒体存储的,造成这个现象多半是突然断电或者死机重启造成数据丢失造成的。
电视盒是一种外置的电视接收盒,外形如一个调制解调器大小,是一个相对独立的设备。电视盒的优点是可以不占用IRQ(中端)、不开主机、PLUG&PLAY(即插即用)、无需安装驱动程序。
许多电视盒增加了采集节目的功能,电视节目的效果跟它的芯片以及高频头有直接的关系,价格适中。电视盒的功能还包括录像、时光平移、视频采集与压缩以及收听广播等。用户可以通过电脑对电视卡采集的视频进行后期编辑处理,并可以刻录成光盘以便保存。
❸ com.android.phone已停止运行怎么办
手机com.android.phone已停止的两种解决方法:
com.android.phone已停止的解决方法一:清空软件缓存
1:清楚拨号历史数据,首先进入设置——程序管理——全部——拨号——清除数据/缓存试试,还可以清理下手机的缓存。
2: 进行以下两个操作,音量键选择,电源键确认 wipe data/factory reset和wipe cache partition
3:选择reboot system now重启手机,看看是否还有com.android.phone已停止。
om.android.phone已停止的错误分析:
Android运行系统程序出错时都会报XXX进程意外停止,从表面上除了知道是哪个进程出错外其他一无所知,但是经分析一般是由于多种原因导致的,如缓存过多,或者刷机之前没有进行双清等等。
❹ 8848手机出现进程android停止运行怎么办
1、关机,把sim卡拿出来。
2、不装sim卡重启机器。
3、重启之后,进入设置,更多,移动网络,网络运营商。选择后等待约30秒后,出现网络运营商,然后点自动选择。
4、关机,插入sim卡,重启,问题解决。
5、以上为8848手机出现进程android停止运行的解决步骤。