リストにいくつかのデータを表示するメインアクティビティと、カードからいくつかのデータを読み取るnfc-asynctaskがあります。次の動作を実現したい:
- アプリを閉じてカードを携帯電話の近くに置くと、メイン アクティビティと同時に nfc-asynctask が開始されます。asynctask の結果はダイアログに表示されます。
- アプリを開いてカードを近づけると、nfc-asynctask が再起動され、結果を示すダイアログのみが開かれます。
私の現在のアプローチは、常にメインアクティビティを開始します。つまり、メイン アクティビティのインスタンスが複数あり、ユーザーが戻るボタンを押すと、ホーム メニューに切り替える代わりに、別のアクティビティ インスタンスが実行されることがあります。
マニフェスト
<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>