问题描述
- Android 从快捷方式进入目标页面的问题
-
Android开发中,在桌面创建快捷方式后进入目标页面,现在有两种情况:1.app正在运行
2,app已经退出(后台线程结束)对于第一种情况,处理就非常简单了,直接将参数传入Intent并打开对应的Activity即可。
但第二种情况比较复杂,因为app已经退出,而要打开的Activity中的某些操作是需要依赖app的初始化的,这些初始化操作是在app启动过程中进行的。举个例子,微信创建桌面联系人快捷方式,点击后需要初始化登录账号,登录环信聊天,然后才能进入目标聊天的Activity,这些用户信息是在app启动时与服务器进行一系列交互后取得的。如果app退出后直接进入详情Activity,就会因为获取不到用户信息而出错。
我们要达到的目的是:
假如app正在运行,则直接跳转到DetailActivity进入聊天,在DetailActivity中按Back键返回MainActivity
假如app已经退出,先从SplashActivity进入,显示app启动界面,初始化操作完成后进入MainActivity再跳转到DetailActivity显示具体内容,在DetailActivity中按Back键返回MainActivity。
怎么解决
解决方案
假如app正在运行,则直接跳转到DetailActivity进入聊天?
这个可以通过Intent携带一些包含初始化的参数进去启动,如果这些参数必须要从MainActivity中获取的话,可以考虑将这些参数在应用退出的时候
保存到sharepreference中去,通过intent携带的标志位再决定是否需要读取
在DetailActivity中按Back键返回MainActivity?
这个MainActivity如果没有启动过的话,在AMS中就没有保存这个activity状态,只能通过模拟返回键的效果进行启动,也就是通过Intent启动
解决方案二:
假如app正在运行,则直接跳转到DetailActivity进入聊天?
这个可以通过Intent携带一些包含初始化的参数进去启动,如果这些参数必须要从MainActivity中获取的话,可以考虑将这些参数在应用退出的时候
保存到sharepreference中去,通过intent携带的标志位再决定是否需要读取
在DetailActivity中按Back键返回MainActivity?
这个MainActivity如果没有启动过的话,在AMS中就没有保存这个activity状态,只能通过模拟返回键的效果进行启动,也就是通过Intent启动
解决方案三:
你的app平白无故的怎么会退出?
目标activity是在app里面的吗?还是另一个应用里的。