【问题标题】:Resuming app (activity) on intent receive when activity is onPause当活动处于暂停状态时,在意图接收时恢复应用程序(活动)
【发布时间】:2014-12-07 22:17:46
【问题描述】:

这是我的场景:

  • 用户打开应用并使用它 => 应用位于其中一个屏幕中
  • 用户使用 Home 键在后台移动应用程序
  • 用户开始浏览并浏览我的网站。通过网站,某些链接会打开应用
  • 用户单击浏览器中的链接并启动应用程序,但即使活动处于 onPause 状态,它也不会恢复,而是重新启动,因此当前会话正在丢失。

我的主要活动是使用意图过滤器数据,所以我添加了:

  <activity android:name=".HomeActivity"
            <intent-filter>
                <data android:scheme="myprop" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
            </intent-filter>
  </activity>

因此,当用户在浏览器中单击自定义 url 时,我的应用会唤醒并启动 Activity。 所以正如我之前所说,如果我的HomeActivityonPause(意味着用户已经使用它)是否可以在保持当前用户进度的同时简单地恢复它(当然还要解析 myprop 参数)?

【问题讨论】:

标签: android android-activity activity-lifecycle


【解决方案1】:

您需要将活动的启动模式定义为单个实例。为此,请在 Android Manifest 中更新您的 Activity:android:launchMode="singleInstance"

之后,您现有的活动将被打开,您将收到Activity.onNewIntent(Intent intent)的回调

【讨论】:

  • 我认为这是正确的方法,但是我看到了一个奇怪的行为:当用户点击浏览器时打开应用程序,当我从启动器,它不会像以前那样恢复......它只是关闭。我不知道该怎么解释。如果该应用程序根本没有启动并且我从启动器图标开始它第一次工作。第二次我按下它只是打开和关闭的图标,onCreate、onNewIntent 或 onResume 没有被调用......只是为了记录,我有一个 SplashActivity 显示图像然后调用 startActivity
  • 在此处添加问题; stackoverflow.com/questions/26341067/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多