一种类型的意图行为可以在不同情况下触发两种不同的服务吗?

时间:2013-11-11 22:17:43

标签: android android-intent nfc

我编写了一个Android应用程序,它从标签中读取NDEF消息并对其执行某些操作。这很有效。
现在我想写入标签,但是只有先打开应用程序,单击“写入”按钮并关闭标签。如果应用程序没有运行(活动未激活),它应该启动另一个活动并从标签中读取它已经存在。

因此,当我按下“写入”按钮NDEF_DISCOVERED时,操作应触发写入标记的活动,当没有按任何内容时(应用程序未运行)NDEF_DISCOVERED操作应触发从标记读取的活动。

这是可能的,如果可以,怎么样?谢谢!

修改
也许我不需要启动新的活动,而只是检查以前活动状态的值并根据它选择行动?

2 个答案:

答案 0 :(得分:1)

您可能需要注册前台发送(NfcAdapter.enableForegroundDispatch(),请参阅Using the Foreground Dispatch System)。

我不太确定我理解你的场景:你想按一个写按钮,然后显示你的写活动(可能会显示一条消息,用户应该点击标签进行写入),然后用户点击标签然后应该写出数据。

如果是这种情况,您可以在写活动的onResume方法中注册前台调度(并在相应的onPause方法中再次禁用它)。

答案 1 :(得分:-1)

您可以IntentFilter动态注册onResume,并在onPause

中取消注册

http://developer.android.com/reference/android/content/Context.html

上查看registerReceiver()unregisterReceiver()