首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NFC检测:启动活动或显示对话框

NFC检测:启动活动或显示对话框
EN

Stack Overflow用户
提问于 2013-10-18 13:16:13
回答 1查看 1K关注 0票数 0

我有一个main-activity,它显示列表中的一些数据,还有一个nfc-异步任务,它从卡中读取一些数据。我想实现以下行为:

  1. 如果应用程序关闭,并将一张卡放在移动电话附近,则应该启动主活动,同时启动nfc-异步任务。异步任务的结果应该在对话框中显示。
  2. 如果应用程序被打开,卡被放置在附近,则应该重新启动nfc-异步任务,并且应该只打开一个带有结果的对话框。

我现在的方法总是开始主要的活动。这意味着有时会有多个主活动的实例,当用户点击后退按钮时,而不是切换到主菜单,另一个活动实例就会出现。

流形

代码语言:javascript
复制
<activity
    ...
    android:launchMode="singleTop">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.nfc.action.TECH_DISCOVERED"/>
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/filter_nfc"/>
</activity>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-18 16:28:14

看看安卓的前景调度设施。如果您为前台分发注册了应用程序,您的活动将收到一个onNewIntent()事件,而不是第二次开始。

另外,我建议将TECH_DISCOVERED意图放在一个单独的意图过滤器中:

代码语言:javascript
复制
<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
    <action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
           android:resource="@xml/filter_nfc" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19450661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档