2 onealllei onealllei 于 2016.04.27 20:08 提问

Android 从快捷方式进入目标页面的问题 5C

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。

怎么解决

3个回答

SleepHeader
SleepHeader   2016.04.27 20:54

假如app正在运行,则直接跳转到DetailActivity进入聊天?

这个可以通过Intent携带一些包含初始化的参数进去启动,如果这些参数必须要从MainActivity中获取的话,可以考虑将这些参数在应用退出的时候
保存到sharepreference中去,通过intent携带的标志位再决定是否需要读取

在DetailActivity中按Back键返回MainActivity?

这个MainActivity如果没有启动过的话,在AMS中就没有保存这个activity状态,只能通过模拟返回键的效果进行启动,也就是通过Intent启动

SleepHeader
SleepHeader   2016.04.27 20:53

假如app正在运行,则直接跳转到DetailActivity进入聊天?

这个可以通过Intent携带一些包含初始化的参数进去启动,如果这些参数必须要从MainActivity中获取的话,可以考虑将这些参数在应用退出的时候
保存到sharepreference中去,通过intent携带的标志位再决定是否需要读取

在DetailActivity中按Back键返回MainActivity?

这个MainActivity如果没有启动过的话,在AMS中就没有保存这个activity状态,只能通过模拟返回键的效果进行启动,也就是通过Intent启动

wenxiaoxin19861101
wenxiaoxin19861101   2016.05.13 10:35

你的app平白无故的怎么会退出?
目标activity是在app里面的吗?还是另一个应用里的。

Csdn user default icon
上传中...
上传图片
插入图片