即時通訊使用NFC和即時通訊工作意圖。當發現NFC標籤 我開始我的NFCActivity。不要開始新的活動新的意圖,採取舊的活動
<activity
android:name="controller.NFCActivity"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" />
</activity>
NFCActivity是一個沒有UI的活動。它啓動我的NFCReaderTask。
String action = intent.getAction();
if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) {
Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
NFCDataDevice dataDevice = new NFCDataDevice();
dataDevice.setCurrentTag(tagFromIntent);
byte[] systemInfoAnswer = NFCCommand.sendGetSystemInfoCommandCustom(tagFromIntent, new NFCDataDevice());
if (NDEFHelper.decodeSystemInfoResponse(systemInfoAnswer, new NFCDataDevice())) {
NFCReaderTask nfcReaderTask = new NFCReaderTask(this, this, dataDevice);
nfcReaderTask.execute();
}
}
當ReaderTask完成我的回調方法onNFCReaderTaskCompleted
我 NFCActivity叫我這樣做:
public void onNFCReaderTaskCompleted(Long time, String value) {
Intent newIntent = new Intent(this.getApplicationContext(), NFCResultActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
newIntent.putExtra(Globals.KEY_NFC, true);
newIntent.putExtra(Globals.KEY_TIME, time);
newIntent.putExtra(Globals.KEY_VALUE, value);
this.startActivity(newIntent);
this.finish();
}
這很好,第一次一個NFC標籤被發現。我現在想要的是不要 永遠啓動一個新的NFCResultActivity。當NFCResultActivity激活時,我只需要 想調用一個NFCResultActivity的方法來設置新數據,而不是完全創建一個新的活動 。
我該如何做到這一點?
這實際上使情況變得更糟。首先它不會假裝從一開始就一次又一次地開始活動,第二次當我手動啓動我的NFCResultActivity並放置一個標籤時,我在頂部有兩個NFCResultActivities。 – Mulgard 2014-11-05 08:42:22
刪除此標誌Intent.FLAG_ACTIVITY_CLEAR_TOP | – 2014-11-05 08:47:56