Android NFC和onNewIntent()

时间:2017-07-28 13:11:07

标签: android android-intent nfc

在NFC活动中编写onNewIntent(Intent intent)方法时,是否需要致电super.onNewIntent(intent)

我问,因为official example包括它:

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    ...
    if (intent != null && NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMessages =
            intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
        if (rawMessages != null) {
            NdefMessage[] messages = new NdefMessage[rawMessages.length];
            for (int i = 0; i < rawMessages.length; i++) {
                messages[i] = (NdefMessage) rawMessages[i];
            }
            // Process the messages array.
            ...
        }
    }
}

但是other official example没有:

public void onNewIntent(Intent intent) {
    Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
    //do something with tagFromIntent
}

据推测,第二个例子是不完整的(并且不正确),但我想确定。

1 个答案:

答案 0 :(得分:0)

根据官方here,我没有理由致电super.onNewIntent(..)

例如,您可以检查onDestroy()方法documentation。它包括下一行:

  

派生类必须调用超类的实现   这种方法。如果他们不这样做,将抛出异常。