Android 进程被系统杀死之后,app应该如何正确的重新启动?

假设现在有三个Activity A,B,C。依此顺序打开,并对Activity A 调用finish()方法,然后按HOME键返回到桌面,然后如果系统在此时杀死了这三个Activity所在的进程,那么在再次点击该app的启动图标后,怎么样才能重新回到Activity A,重新开始启动,就和微信的方式类似,纠结了很久,请大神赐教!

2

3个回答

没做过安卓,没用过微信。能监听HOME键事件,或在finish()之前将状态保存到文件或数据库吗?再次启动的时候先从文件或数据库恢复状态。

1
0
m121657026
丧尽心 404了
大约 3 年之前 回复

你好,我也碰到过这样的问题。按照你描述的情景,再次启动时,会首先打开Activity C。但是你的需要是首先打开Activity A。

有一种方法,不知道是否可行?不要对Activity A进行finish(),而且要对Activity A设置属性singleTask。当Activity C被调用onCreate时,判断进程是否是重新启动的,如果是,则startActivity A。此时Task会把B、C都删除掉,Activity A会启动。

-1
sylcc_
sylcc_ 设置启动模式应该可以解决。也可以换中思维方式:不一定需要三个Activity,说不定一个Activity中包含三个Fragment就可以满足要求了。
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android如何保证自己的服务被系统kill后又被系统重启?
大家好: 今天是我第一次发表文章,希望大家以后多多支持。 我觉得现在网上Android 的各方面问题都有很多,我想以自己的方式来分享给大家,分享我所学所悟。网上Android基础方面的东西更是遍地都是,所以我的打算就是我以后写博客的内容是不会写太基础性的东西,我会写一些Android基础上深入研究的东西。希望大家一起相互交流学习。
保证进程被杀死后,activity还能够立刻重新启动的技巧(android:stateNotNeeded="true")
当我们在ddms kill掉自己的进程。如何保证能够立刻重新启动我们的进程呢?在没有roo他权限的情况下,即保证基本不被别人杀死。 在AndroidManifest.xml 中主activity处设置为:android:stateNotNeeded="true" 就能够满足要求。不信,你试试……
App在后台被杀死后重启-重进首页方法
感谢这位哥的思路。 这个问题很常见,基本所有app都会遇到这个问题。但是很多开发者都没有处理。 问题的起因:我的app在进入后台后一段时间,可能被系统干掉了,然后通过多任务键,或者图标再点进去操作,出现xxId为null 经过一番探索发现: app在被系统干掉后,重新进入,是会实例出所有的界面(因为他们都重写了onsaveInstance方法),但是这个界面所有的变量都变为null了(如果...
Android APP 主动杀死进程后又重启的情况分析
最近有一个需求,在APP内点击某按钮后跳转到Launcher的某页面,同时杀掉自身APP。 一个很简单的需求,结果实现起来却出现了问题。。。T T 最开始,我就想着直接用  android.os.Process.killProcess(android.os.Process.myPid()); 或者 System.exit(0); 大家知道这两个方法,都可以杀掉当前app的进程,但是当...
Android面试题-service被kill之后怎么让它重启
Android面试题-service被kill之后怎么让它重启
被后台杀死后,Android应用如何重新走闪屏逻辑
Android应用运行在后台的时候,经常被系统的LowMemoryKiller杀掉,当用户再次点击icon或者从最近的任务列表启动的时候,进程会被重建,并且恢复被杀之前的现场。什么意思呢?假如APP在被杀之前的Activity堆栈是这样的,A 从最近的任务列表唤起,不走恢复流程 首先,APP端必须知道当前Activity的启动是不是在走恢复流程,Activity有一个onCreate方法,在A
App手动杀死后重新打开App恢复杀死前的页面
说实话,刚接到这个需求的时候我内心是拒绝的。因为从用户角度来讲,我既然手动杀死了就是想关闭这个App,关闭的原因有很多,但是重启后还停留在我最后关闭时的页面就不可理解了。但是需求方是大佬,再不愿意也得做。下面说说思路及实现方式。1.功能思路     恢复关闭前的页面,是要恢复最后一个Activity的信息,还是恢复整个Activity栈的信息,经需求方要求是恢复所有打开的页面,也就是说恢复整个Ac...
如何让你的app在后台被干掉后优雅的重新启动
如何让你的app在后台被干掉后优雅的重新启动
(原创)解决APP进程被杀死出现的一些坑
这几天在开发中遇到了这样一个问题 当打开的App数量达到一定数目时 原先的App进程会被系统杀死 然后再次进入这个被杀死的App时 发现了一些异常 经过排查,是viewpager的getitem方法没有被调用 通过网上的一些信息得知 用安卓默认的恢复方式来恢复这些数据 是会存在一些问题的 比如fragment的getActivity返回的值为空 于是我想到 是否可以不执行重新加载的方式呢? 于是就...
android杀死进程后重启进程情况分析
1. 应用程序内就是普通的启动了activity,这时候杀死进程android.os.Process.killProcess(android.os.Process.myPid()),进程就杀死了。 2. 应用程序内如果有启动了service正在运行:    1)如果service的onStartCommnad()方法返回的是START_NOT_STICKY, 这时如果杀死进程, 进程就杀死了
Android 黑科技之让进程不被杀掉
Gtechoogle 2016-11-14 19:04 目前市面上,除了微信和手Q外,都会想尽办法能够保证自己的应用进程不被杀掉,其实鹅厂的不被杀掉不是他们使用了什么黑科技,而是手机厂商给鹅厂做了优化,没办法,谁让现在有人不用鹅厂的东西吗? 不信可以放到 Nexus 手机上,保证当内存紧张的时候,绝B一样杀掉。 回到正题,所谓的黑科技,也就是利用一些不正当的方式,尽最大的可能保留我们的应
安卓应用kill 自身并启动
安卓应用kill自身并启动 1.为了杀掉程序并重新启动,需要借助一个中间activity,并且该activity是另外一个进程,在该activity中调用killProcess杀掉原进程                     android:screenOrientation="portrait"                   android:process=":pid_
app被杀死或者没运行,广播接受者接收消息
广播接受者是Android四大组件之一,日常开发中可能会遇到的问题是假设app被杀死了,注册的广播接受者还能正常接收广播吗,如果发送方:Intent intent=new Intent(); intent.setAction(""); intent.addCategory(""); intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); thi...
Android一个APP检测另一个APP的Service被杀死时自动重启服务
例如:appA要检测启动appB中的service 1.修改B中Service启动时的FLAG @Override public int onStartCommand(Intent intent, int flags, int startId) { flags = START_STICKY; return super.onStartCommand...
android 进程防止被杀死
每个公司都想把自己的app时时刻刻运行在用户的手机上面,就算当用户点击清理应用时,也能够不被杀死。这种app有几个典型的,就是微信,QQ,支付宝这类的。 网络上面,很多人提出各种方法: 1.提升应用等级 2.重启应用 3.守护进程 …… 实测,没有卵用,守护进程,会在杀死时,同时被杀死。微信,QQ,这类是怎么实现的,为什么只有这几个特别有名的app才能够实现不被杀死的呢?如果是说是什么特
Android应对Activity进程被杀死
通常在一部Android手机里同时运行着多个应用(app),每个app对应一个系统进程,当系统需要更多的资源(如内存)而空闲资源不足时,Android系统就会选择杀掉一些低优先级的进程以便释放所需资源,这也是Android开发与PC桌面开发不同的之处。   Android系统进程优先级的高低通常是这样判断的:         1)如果一个app正在与用户交互,那么它所在的进程具有最高优先级;
被杀死的App能否通过广播唤醒
转自:https://zhuanlan.zhihu.com/p/20933603 最近在做一个需求:程序没有桌面图标,安装后能够自动将其插件添加到Launcher上,也就是程序在未启动的情况下,能够完成一些操作。 能够想到的方案是在AndroidMainifest.xml中静态注册一个广播,监听系统的某些广播达到触发应用完成操作的目的,但现象是:程序安装后,在未启动的情况下无法接收到系统的
如何保证Android Service在后台不被Kill,或者被Kill后重启
Service组件在android开发中经常遇到,其经常作为后台服务,需要始终保持运行,负责处理一些必要(见不得人)的任务。而一些安全软件,如360等,会有结束进程的功能,如果不做Service的保持,就会被其杀掉。 在早些时候,我们可以通过在 1. service中重写onStartCommand方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动
Android 模拟App被系统Kill情况
转至:http://blog.csdn.net/jie1991liu/article/details/45673211 说明   这是翻译老外的一篇文章,我之前有遇到过这个问题,并且看到有人在Segmentfault上问,最主要我在StackOverflow上居然没搜到累死问题,所以觉得有必要翻译过来以便后面不会再这样处理。 前言   在你的App中的很多地
防止Android程序被系统kill掉的处理方法
目前遇到一个问题程序需要一直运行,并显示在最前端,但是运行一段时间发现会被系统Kill掉,这样程序就退出回到了桌面,不能实现一直运行的效果。为了实现此效果,也想了一些办法。
APP在后台被系统回收后,如何重新启动
问题: app运行在后台,android系统会在内存不够用的时候,回收app,如果app中有全局的变量,那么再次打开app可能会出现崩溃的情况。 示例: 示例源码 public class MyApplication extends Application { String name; String getName() { return name;
Android 开发之Service 探索如何保证Service不被杀死或被kill之后自动重启
前言: 在我司项目1.0版本的时候消息是使用的环信、用了之后发现各种bug,各种机型不支持导致app崩溃,于是在2.0版本果断去掉环信,使用了公众号用的那套消息系统(老大自己写的)并做了扩展升级。搞了近半个月终于是搞完了,项目也顺利上线......
如何让service被管理器杀死后自动重启
欢迎转载,转载请注明出自:www.androidkaifa.com    安卓开发网     笔者最近在一项目开发中遇到这样一个需求,要在自己应用中启动了一个service,这个service用来监听服务器发过来的推送信息并弹出一个对话框显示信息,所以需要保证这个service时时运行着,且不能被任务管理或是系统的设置等工具杀掉,如果services是被杀死,则需要自动重启这service,
android进程重启及activity恢复
经常听到有人说android内存不足时会回收activity,这是不对的,android内存不足时会去查后台进程,杀死某些进程来获取内存。杀activity的说法是不对的,可能是受了官方某些文档的误导。 android官方文档上有这么一段话,有点误导的成分。 If an activity is paused or stopped, the system can drop the act
Android 使用极光/友盟推送,APP进程杀死后为什么收不到推送
转载自:http://blog.csdn.net/u013776057/article/details/51671490 为什么会存在这样的 问题,刚开始的时候我也搞不清楚,之前用极光的时候杀死程序后也会收到推送,但最近重新再去集成时就完全不好使了,这我就纳闷了,虽然Google在高版本上的Android上面不建议线程守护,所以将进程有关的Service都杀掉了,但旧版本还是有这个功能的
Android应对进程被杀死--Activity
通常在一部Android手机里同时运行着多个应用(app),每个app对应一个系统进程,当系统需要更多的资源(如内存)而空闲资源不足时,Android系统就会选择杀掉一些低优先级的进程以便释放所需资源,这也是Android开发与PC桌面开发不同的之处。   Android系统进程优先级的高低通常是这样判断的:         1)如果一个app正在与用户交互,那么它所在的进程具有最高优先级;
(转)Android 使用极光/友盟推送,APP进程杀死后为什么收不到推送
原地址:http://blog.csdn.net/liangde123/article/details/69947423 为什么会存在这样的 问题,刚开始的时候我也搞不清楚,之前用极光的时候杀死程序后也会收到推送,但最近重新再去集成时就完全不好使了,这我就纳闷了,虽然Google在高版本上的Android上面不建议线程守护,所以将进程有关的Service都杀掉了,但旧版本还是有这
关于APP进程被杀死,极光推送收不到消息的解决办法
推送是每一个APP必不可少的一部分,这几天正好在做这一块,所以总结一下遇到的一些问题。在APP被杀死的情况下,对应的推送service也一起被杀死了,这个时候我们怎么能够收到后台的推送呢?网上有很多关于这方面的办法,像什么给服务设置成一个独立的子进程啊,设置守护进程啊,本人亲测,没有什么卵用。像MIUI啊,360这些,分分钟给你干掉。下面我就说一下,我是怎么解决这个问题的。第一个解决办法:将你的A
android app被系统回收后重启异常的解决方法
APP在后台运行的时候时常会发生被系统回收的事情,可能是内存不足的多种原因造成。被系统回收后系统任然会保留APP的activity栈,用以恢复,但是这样就存在很多的问题需要解决,如果activity没有做保存数据的操作,就会出现空指针等异常。一种比较比较好的方式就是在被系统回收后,重启app的时候就重新唤起app这个在网上有比较好的解决方式了http://www.2cto.com/kf/20160
android 中保证进程不被杀死
前言开发一个需要常住后台的App其实是一件非常头疼的事情,不仅要应对国内各大厂商的ROM,还需要应对各类的安全管家…虽然不断的研究各式各样的方法,但是效果并不好,比如任务管理器把App干掉,服务就起不来了… 一般来说:有以下几种可行的方法来使自己的进程不被杀死1 进程不被杀死的方法1、提高Service的优先级:这个,也只能说在系统内存不足需要回收资源的时候,优先级较高,不容易被回收,然并卵…2、
app 在后台时间过长被杀死,及时重启
大家肯定会遇到过app退到后台,同时开启很多其他的应用,这时可能会造成我们的app因内存不足而导致进程被杀死,这时我们在从后台返回我们的app时,就会出现问题,特别是用到Application里面存储的变量时,这时会出现空指针的现象,这时我们就要想办法来解决这个问题。 第一种是直接在登录的时候直接把网络获取的数据存进数据库,用到的时候直接在数据库拿,这样呢可以解决问题,但是这时就要写很多的代码。
让Android应用不被杀死(killer)的方法
这篇文章主要介绍了让Android应用不被杀死(killer)的方法,本文讲解了实现方法和原理分析,需要的朋友可以参考下 方法: 对于一个service,可以首先把它设为在前台运行: 复制代码 代码如下: public void MyService.onCreate() {         super.onCreate();         Notification
Android模拟后台进程被杀
Android开发中,有时候我们需要测试下后台进程被杀,然后重新进入App时恢复现场的case。如果采用填充内存的方式,比较麻烦,下面介绍几种快速模拟后台进程被杀的方式:
守护进程方式保证App不被杀死
思路 linux进程中用到的方法 代码 1 linux进程部分 2 App部分 3 Androidmk部分转载请注明链接因为Android的内存管理机制,当系统内存紧张时,App如果运行在后台,容易被LowMemoryKiller杀死。为了保证App的Service能够在杀死后重启,下面介绍一种在进程杀死后能够重新拉起App的方式。1. 思路:简单来讲,就是开启linux守护进程,轮询App进程是否
APP被kill后重新激活的几种方案
严重声明:除非万不得已,一定不要滥用,一定不要滥用,一定不要滥用!否则非常影响用户体验,我自己也觉得有些流氓,但是由于我们应用的特殊性,一旦被销毁,非常影响用户使用,望各位同行能引以为戒!      第一种:在Application监听此方法,onTrimMemory @Override public void onTrimMemory(int level) {
Android 关于App被杀死后,如何接收极光推送
作为一个程序媛,我要做到的就是听从上级的安排,有需求就实现。但是有的事情我表示真的很无力啊,就比如标题所说的需求。 因为ios在杀死app后都可以接收到通知,所以不懂的人就会觉得那Android应该都是可以的啊, 这个真是坑了我好多次啊,还有桌面角标也是同样的,人家ios就是系统支持的啊。我的天!! 希望产品经理和项目经理 多多了解一下iOS和Android的一些区别,避免尴尬   1....
如何保持守护进程被杀死后能够再次启动
系统自动启动Linux APP 方式有很多 如利用 inittab init.d 关于守护进程被杀死后再次启动的文章看了很多,一直没找到适合我项目的。最后想了一个办法曲线救国。 上代码 #include #include #include #include //inittab 加入监听此程序 //利用此程序监听test_api_app 进程执行情况 int main(void)
android app防被杀策略
Service篇                     android:name="com.example.service.**Service"             android:icon="@drawable/w6"             android:enabled="true"              android:exported="false">  不
让APP不被android系统杀掉
让APP不被android系统杀掉在AndroidManifest.xml中设置 ,可以提升权限,减小被系统kill的可能android:persistent="true"
内存不足导致应用进程被杀
应用处于后台时,如果手机内存不足,应用进程会被强制杀掉. 如果通过最近打开的应用列表回到应用,那么首先会调起Application, 然后会恢复被杀之前的Activity, 如果Activity中含有Fragment, 那么Fragment也会被创建新的实例,但是应用中的其他单例等数据就会被清除。 生命周期Android的组件都是有生命周期的,与用户交互的Activity和Fragment都有明确的
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java应该如何学习 javaee应该如何学习