【发布时间】:2018-11-14 15:39:02
【问题描述】:
如果事件“NDEF_DISCOVERED”包含某个 URL,我的 Android 应用程序正在使用意图过滤器来打开它。 它工作正常,但我注意到,如果我将应用程序置于后台并点击 NFC 标签,会启动程序的一个新实例。如果我这样做几次,我会创建我的应用程序的几个实例。这给我带来了一些问题,所以我想找到一个解决方案,以便只打开一个实例。
附注:当我的程序处于前台时,我在 onResume 中使用 enableForegroundDispatch(),在 onPause 中使用 disableForegroundDispatch()。它工作正常。
当我的程序在后台并且当我点击一个 NFC 标签时,有没有办法让系统检测到程序已经启动并将其置于前台而不是启动一个新实例?
作为比较,如果我将我的程序放在后台,进入程序列表并点击我的程序,Android 会检测到该程序已打开并在不创建新实例的情况下恢复它(onCreate()在这种情况下不调用 MainActivity)。为什么我们对 NFC 事件没有相同的行为?是否有可能有相同的行为?
我已经阅读了这个帖子 (Application receiving NFC always pops up new instance in front),这是同一个问题,但它并没有帮助我找到解决方案。
【问题讨论】:
标签: android android-intent nfc