Notification 程序常驻,当程序被GC回收后,程序是重新启动执行吗?

wn520 2013-12-03 09:37:34

我想请问下,用了Notification 来做程序常驻,程序会回收后,点击Notification之后整个程序都是重新启动吗?
可是感觉是直接启动Application 然后启动最后一个Activtity,并没有按照正常的启动方式来启动应用。
...全文
138 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
依然绿茶 2013-12-03
  • 打赏
  • 举报
回复
引用 4 楼 wn520 的回复:
我的需求是这样的,在应用任何一个页面,按Home键,新建一个Notification在状态栏,点击Notification回到之前页面。 现在有个问题,应用被回收之后,点击Notification是重新启动应用,但是并没有整个应用都启动,导致该页面使用的全局变量是个空指针,导致应用崩溃退出。 这个问题怎么解决啊!
如果你要保留你的状态的话,那就用START_REDELIVER_INTENT,因为START_STICKY是不保留启动的intent的状态的。 具体实现大概:你按HOME键新建的notification中带一个启动service的intent(这个你应该知道怎么写吧),把你要保存的状态数据放到这个intent中,这个intent就传到service中了,接着
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    handleCommand(intent);//这个intent就保存了你的数据,然后恢复楼主所需的状态哈
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_REDELIVER_INTENT;
}
wn520 2013-12-03
  • 打赏
  • 举报
回复
我的需求是这样的,在应用任何一个页面,按Home键,新建一个Notification在状态栏,点击Notification回到之前页面。 现在有个问题,应用被回收之后,点击Notification是重新启动应用,但是并没有整个应用都启动,导致该页面使用的全局变量是个空指针,导致应用崩溃退出。 这个问题怎么解决啊!
wn520 2013-12-03
  • 打赏
  • 举报
回复
引用 2 楼 ncepu307 的回复:
是的,并没有整个程序都启动 如果想被系统收回后重启。 可以通过service来解决,在onStartCommand()函数中返回 START_STICKY 这个标记。
原来是这样哦,难怪MainActivity没执行全部,导致后面出现空指针了, 这个Service 能够给个详细的思路吗!
依然绿茶 2013-12-03
  • 打赏
  • 举报
回复
是的,并没有整个程序都启动 如果想被系统收回后重启。 可以通过service来解决,在onStartCommand()函数中返回 START_STICKY 这个标记。
DrSmart 2013-12-03
  • 打赏
  • 举报
回复
用service可以

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧