2012-12-04 37 views
3

我有一项活动构成了我的应用程序的基础。这是问题。打开文件时防止应用程序/活动的多个实例

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

这里是我的意图过滤器在我的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> 

我还增加了以下内容清单文件我的应用程序标签,但它没有任何效果。

android:launchMode="singleTask" 

问题

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

加成

我用singleInstance和感动到我的活动标签。但是,现在我无法获取我的电子邮件附件数据?以前我使用了以下内容。

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"); 
+0

你试过单个实例吗? – njzk2

+0

你尝试过'android:launchMode =“singleInstance”'? –

回答

1

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

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

+0

确定'singleInstance'不是'singleTop'。现在的问题是,当我去'getIntent.getData();'时,我的onRestart方法中没有收到attachmet数据。 – StuStirling

+0

'onNewIntent'是否被调用? –

+0

这确实被调用,意图确实获取数据。但是现在在阅读Gmail时有权限问题。我已经添加了这些权限,但仍然没有喜悦。我讨厌android。你帮我解决了我原来的问题和更多。谢谢 – StuStirling

相关问题