我剛剛添加了用戶通過備份自定義文件類型在我的應用程序中恢復其數據的功能。當使用我的應用程序從文件瀏覽器打開文件時,我的根(主)活動打開,但在新實例中。例如,如果我的應用程序已打開並且從文件資源管理器打開還原文件,我的應用程序的新實例將在我的根活動處打開。在android的任務管理器中,這看起來像我的應用程序在文件瀏覽器中運行,如果這是有道理的。由於還原過程會更改用戶數據,因此應用程序的原始實例可能會停止運行,因爲它處於與數據相關的活動中。如何通過不同的意圖訪問應用程序的多個實例
如何通過不同的意圖訪問我的應用程序時,如何防止我的應用程序的多個實例?謝謝。
更新:我周圍搜索,仍然無法找到解決方案。幫助將不勝感激。在清單我根系活力
意圖過濾器:
<manifest
android:launchMode="singleInstance"
...
<application
android:... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<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" android:pathPattern=".*\\.grdcsv" android:mimeType="*/*" android:host="*"/>
</intent-filter>
<!-- For email attachments -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/octet-stream" android:pathPattern=".*\\.grdcsv" android:scheme="content" />
</intent-filter>
謝謝,因爲它*阻止它作爲新實例啓動。但是,我已經看到了兩個不良的副作用。 1)當我從桌面快捷方式啓動正在運行的應用程序時,它從根活動開始,而不是用戶離開的地方。 2)當我用應用程序打開自定義文件擴展名時,應用程序將啓動到根活動,而不調用文件的操作。我必須再次啓動活動才能獲得該行爲。這就像意圖越來越混亂。 – NSouth 2014-11-24 21:05:12
@NSouth嘗試'singleTop'而不是'singleTask'。現在會發生什麼? – 2014-11-25 01:03:36
這實際上是以前的樣子。我可能會離開它,因爲我只是在恢復他們的數據時才這樣做。如果他們有一個開放的實例,而底層的數據通過另一個實例發生變化,他們會崩潰,但應該沒問題。我希望。 – NSouth 2014-11-25 01:06:11