在我的旧问题结束后,考虑到你给我的建议,我现在再次尝试......
我有一个 Android-Test-App,我想在使用 NFC 读取某些内容(fe RFID 芯片)后立即将文本更改为 TextView。
问题是我与 TextView 的活动位于 TabHost 的选项卡中。当 NFC 正在读取某些内容时,Activity 在前台启动并且 TextView 不会更改。我想要的是只有 TextView 发生变化,其他一切都保持原样......
这是我的代码:
我的标签活动:
public class NfcTabsActivity extends TabActivity {
private NfcAdapter nfc;
private PendingIntent nfcintent;
private String[][] nfctechfilter = new String[][] { new String[] { NfcA.class.getName() } };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
Intent intent = new Intent().setClass(this, NfcTest.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
TabSpec spec = tabHost.newTabSpec("nfctab").setIndicator("NFC").setContent(intent);
tabHost.addTab(spec);
nfc = NfcAdapter.getDefaultAdapter(this);
// PendingIntent using the NfcTest-Activity to receive the Intent. (Am I doing this correctly??)
nfcintent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);
}
// Start looking for NFC when activity is started/resumed.
@Override
protected void onResume() {
super.onResume();
nfc.enableForegroundDispatch(this, nfcintent, null, nfctechfilter);
}
// Disable NFC when leaving activity
@Override
protected void onPause() {
super.onPause();
nfc.disableForegroundDispatch(this);
}
}
这是我的 NfcTest 活动,在使用 NFC 时应该接收意图:
public class NfcTest extends Activity {
private TextView status;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nfctest);
status = (TextView) findViewById(R.id.textView2);
}
@Override
public void onNewIntent(Intent intent) {
status.setText("RFID detected...");
}
}
感谢NFC 人员将 PendingIntent 放入 TabActivity 的建议!不幸的是 - 正如我在另一个线程中所说 - 这对我也不起作用...... :(也许我在我的代码中做错了什么?
这是我的AndroidManifest.xml中的活动定义:
[...]
<activity android:name=".NfcTest" android:clearTaskOnLaunch="true" android:alwaysRetainTaskState="true" android:finishOnTaskLaunch="true"></activity>
[...]
谁能帮我解决这个问题?也许你是 NFC 家伙?也许我只是理解你的想法有问题,或者在我的代码中混淆了一些东西......?:/