首先,用例:两部手机在同一个屏幕上打开了我的应用程序。我希望一个用户能够与另一个用户共享屏幕内容(数据),而不必在使用 NFC 发送时打开新的活动实例。(两台 Android 设备都运行 Ice Cream Sandwich)
所以我在清单中有一个这样声明的singleTop活动。
<activity android:name=".activity.MyActivity" android:configChanges="orientation|keyboardHidden" android:launchMode="singleTop">
<intent-filter android:label="@string/activityLabel">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="a.b.c/x.y.z" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/x.y.z"/>
</intent-filter>
</activity>
当一个VIEW
动作被触发并且该活动已经在顶部时,如果该活动在同一个实例onNewIntent()
中调用该方法。
当一个NDEF_DISCOVERED
动作被触发并且该活动已经在顶部时,该onCreate()
方法在该活动的一个新实例中被调用。