1

我想恢复启动我的活动的 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(),以便它有效地终止应用程序。我不明白发生了什么,因为在我改变目标之前它在去年就起作用了。

每次访问调用意图所需的配置是什么?

没有我的答案的相关问题:

4

1 回答 1

2

目前,我的程序运行良好,可以根据需要加载 SVG。关于我的配置的一些要点(也许它可以帮助)

  • 我的目标是 Android API 15。我放弃了 19。
  • 我用android:finishOnTaskLaunch="true"AndroidManifest.xml
  • finish()我不调用onPause()方法
  • OnNewIntent永远不会被调用,但是onCreate会调用解析新意图的方法。
  • 活动清单的内容如下:

    <activity
      android:name="com.example.mypackage"
      android:launchMode="singleTop"
      android:finishOnTaskLaunch="true"
      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>
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    
于 2014-10-04T09:48:22.527 回答