我想恢复启动我的活动的 android 意图。
我的活动在 API 19 (KitKat) 中测试,除了主要意图外,还有以下意图过滤器和参数:
android:alwaysRetainTaskState="false"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.svg" />
<data android:host="*" />
</intent-filter>
但是当我在活动运行时打开一个 SVG 文件时,它不会处理新的意图。我尝试了以下组合,启动了活动,
android:launchMode="singleTask"
android:launchMode="standard"
android:launchMode="singleTop"
结合以下参数,可进行 6 种配置
android:finishOnTaskLaunch="true" or "false"
但他们都没有onNewIntent
但是当我用我的应用程序打开 SVG 时相反,它显示以前的状态(按预期调用 onPause 和 onResume,而改为调用 onCreate)。
我发现的唯一解决方法是finish()
从方法中调用函数onPause()
,以便它有效地终止应用程序。我不明白发生了什么,因为在我改变目标之前它在去年就起作用了。
每次访问调用意图所需的配置是什么?
没有我的答案的相关问题:
- 该博客解释说我应该使用“singleTop”,但它不适用于我的情况。
- 这个 SO 问题没有任何答案。
- 这个著名的 SO 问题描述了意图的设置。但就我而言,我自己不会创建意图,android 会。