问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android 如何关闭另一个package中的activity?

发布网友 发布时间:2022-04-30 18:15

我来回答

4个回答

热心网友 时间:2022-06-28 23:40

  Android下结束进程的方法
一、结束一个活动Activity
  要主动的结束一个活动Activity,使用finish方法,而且这个方法最后会调用Activity的生命周期函数onDestroy方法,结束当前的Activity,从任务栈中弹出当前的Activity,激活下一个Activity。当然其他的finish系列方法,我们不在这里做详细讨论,有兴趣的同学可以自己查阅一下SDK 的文档。
二、强制结束当前的进程
  强行结束当前进程有两个方法。
  1、killProcess(int pid)              例子:android.os.Process.killProcess(android.os.Process.myPid());
这个方法使用是有条件的:
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,那么就可以直接使用这个方法了。    

    下面看看代码实现:

package cn.androiddevelop.flushapk.util;

import java.io.IOException;
import java.io.OutputStream;

/**
 * 执行android命令
 * 
 * @author Yuedong Li
 * 
 */
public class SuUtil {

private static Process process;

/**
 * 结束进程,执行操作调用即可
 */
public static void kill(String packageName) {
initProcess();
killProcess(packageName);
close();
}

/**
 * 初始化进程
 */
private static void initProcess() {
if (process == null)
try {
process = Runtime.getRuntime().exec("su");
} catch (IOException e) {
e.printStackTrace();
}
}

/**
 * 结束进程
 */
private static void killProcess(String packageName) {
OutputStream out = process.getOutputStream();
String cmd = "am force-stop " + packageName + " \n";
try {
out.write(cmd.getBytes());
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
 * 关闭输出流
 */
private static void close() {
if (process != null)
try {
process.getOutputStream().close();
process = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}

热心网友 时间:2022-06-28 23:41

用新的覆盖即可,或者显示桌面

返回的话,是当前的activity自动关闭。

热心网友 时间:2022-06-28 23:41

跳转时 当前的Activity不finish掉 并且
Intent intent = new Intent(this,objectA.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
跳转后的Activity在结束不用时finish掉就返回当前的Activity了。追问我就是不懂应该怎么样跨进程finish掉某个activity

追答不懂你到底要什么,一般 情况下是从AActivity跳到BActivity的时候在AActivity的
protected void onDestroy() {
// TODO Auto-generated method stub
this.finish();
super.onDestroy();
}

热心网友 时间:2022-06-28 23:42

再你跳转的activity中添加 finish();如从a--b,再返回到a可以这样
a.java添加
private final int FILE_RESULT_CODE=1;
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {

Intent intent=new Intent(a.this,b.class);
startActivityForResult(intent, FILE_RESULT_CODE);
}
});

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(FILE_RESULT_CODE == requestCode){
Bundle bundle = null;
if(data!=null&&(bundle=data.getExtras())!=null){
log.i("tag","good");
}
}
}

b.java中添加
public void onClick(DialogInterface dialog, int which) {
Intent data = new Intent(b.this, a.class);
Bundle bundle = new Bundle();
finish();

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? android activity怎么全部退出 客家文化的来源 怎么mcontext关闭activity 在Android 中如何关闭应用以及所有的 Activity 蚂蟥钻进黄鳝里,可以吃吗 如何关闭所有Activity,只保留最底层的Activity? 水蛭可不可以生吃 android应用程序强制关闭执行activity哪个方法 Android编成:如何在多个activity的情况下关闭当前的activity? android 面试4: 如何退出Activity?如何安全退出已调用多个Activity的Application? 水蛭(蚂蝗)可以吃吗 如何关闭所有Activity,只保留最底层的Activity 蚂蝗可以吃吗?谢谢了,大神帮忙啊 Android开发中的finish()与onDestroy()方法都是用来结束activity的吧?两个有什么区别? 蚂蟥可以吃吗? 有谁吃过? 如何后台关闭Activity? 蚂蝗能吃嘛? 如何退出activity 蚂蝗可以吃么? 蚂蝗能吃么 android 返回键 关闭当前activity android中怎么kill掉一个activity? android service 怎么结束activity 如何结束一个activity 怎么在Fragment Android怎么finish掉Activity和fragment? 求推荐性价比高的家用轿车轮胎品牌,各种性能都不错,比较全能的那种有吗? 什么牌子奶粉好? 顿号和逗号区别 皇家美素力和皇家美素佳儿的区别是什么? 从日本回中国带美工刀片会被海关查吗? 奶粉好还是乳铁蛋白好? 乳桥蛋白比乳铁蛋白好吗?求科普 佐世保小学杀人事件回顾:日本小学生杀人,被网络当成追捧偶像!结果怎样? 顿号和逗号的区别口诀 天然博士乳铁蛋白好吗? 日本刀刀鞘松了,怎么让刀鞘变得紧些 日本“小学女杀手”辻菜摘落网记:娱乐的反噬,“偶像”女杀手,后来怎样? 逗号和顿号有什么区别 画漫画需要的工具~ 《进击的巨人》中的刀为什么设定为美工刀的样式