3

我有一项活动构成了我的申请的基础。这是问题所在。

  • 我创建了一个名为Instance1.
  • 然后通过导航回主菜单将我的活动发送到后台。onPause并被onStop调用Instance1
  • 然后我导航到Gmail并打开一个电子邮件附件。
  • 这会创建我的活动“Instance2”的一个新实例(我知道这一点是因为我记录了该实例是什么)。我现在在我的活动中所做的任何事情都在这个新实例中。
  • 如果我然后导航到 gmail,那么如果我通过触摸onDestroy调用Instance2原始图标来打开我的应用程序Instance1 onRestart

这是我的意图过滤器manifest.xml

<intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="*/*" />
                <data android:pathPattern=".*\\.dog" />
</intent-filter>

我还在清单文件中的 Applications 标记中添加了以下内容,但没有效果。

android:launchMode="singleTask"

问题

为什么它不能意识到有一个实例正在运行并打开它?

添加

我使用了 singleInstance 并将其移到了我的 Activity 标记中。但是,现在我无法获取我的电子邮件附件数据?以前我使用以下。

Intent intent = getIntent();

        if (intent != null) {
            Log.d("MainActivity","Intent not null");
            Uri u = intent.getData();
            if (u != null) {
                Log.d("MainActivity","URI not null");
4

1 回答 1

1

launchMode 标记是<activity>元素的一部分,而不是应用程序元素。

您应该使用 singleTop 来重新使用现有的活动。

于 2012-12-04T12:55:50.400 回答