onealllei
onealllei
采纳率0%
2016-04-27 12:08 阅读 1.7k

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

5

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 12:53

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

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

    在DetailActivity中按Back键返回MainActivity?

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

    点赞 评论 复制链接分享
  • SleepHeader SleepHeader 2016-04-27 12:54

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

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

    在DetailActivity中按Back键返回MainActivity?

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

    点赞 评论 复制链接分享
  • wenxiaoxin19861101 wenxiaoxin19861101 2016-05-13 02:35

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

    点赞 评论 复制链接分享

相关推荐