私のアプリケーションには、マップをロードした画面がいくつかあります。NFC 選択ダイアログをオーバーライドしています (NFC タグを取り付けると、選択ダイアログが表示されるか、アプリケーションが自動的に起動する NFC イベントをリッスンします)。NFC タグを取り付けても、選択ダイアログは表示されず、アプリケーションも起動されませんが、画面がちらつく/1 秒以内にフリーズします。これは、マップをロードした画面でのみ発生します。他の画面はこのように反応しません。何が問題になる可能性がありますか? どうにかしてマップ画面を他の画面と同じように動作させることはできますか?
これは、他のアクティビティがオーバーライドするために拡張する基本アクティビティです。
public class NavigatorBaseFragmentActivity extends FragmentActivity {
PendingIntent mPendingIntent;
NfcAdapter mNfcAdapter;
private String[][] mTechLists;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// initiate NFC in order to catch onNewIntent
if (NaviApp.checkMinApiLevel10()) {
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
mTechLists = new String[][] { new String[] { NfcA.class.getName() } };
mPendingIntent = PendingIntent.getActivity(this, 0,
new Intent(this, getClass())
.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
}
}
@Override
protected void onNewIntent(Intent intent) {
Log.d("NavigatorBaseFragmentActivity", "Detected NFC tag attach");
}
@Override
protected void onResume() {
super.onResume();
// listen for NFC tag attachment
if (NaviApp.checkMinApiLevel10()) {
if (mNfcAdapter != null) {
mNfcAdapter.enableForegroundDispatch(this, mPendingIntent,
null, mTechLists);
}
}
}
}
マップが表示される My NavigationActivity は、このベース アクティビティを拡張します。