シナリオ:
次のコードでフラグメントからブロードキャストを送信しています
Intent intent=new Intent();
intent.setAction("writeBalanceToNFCCard");
intent.putExtra("balance", Double.valueOf(result));
getActivity().sendBroadcast(intent);
そして MainActivity で、私はそれを受け取っています
private final BroadcastReceiver mReceiverWriteNFC=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
double newBalance = intent.getDoubleExtra("balance", 0);
write(newBalance);
}
};
MainActivity の onCreate() 内で、それを登録しています
IntentFilter writeNFCFilter=new IntentFilter("writeBalanceToNFCCard");
registerReceiver(mReceiverWriteNFC, writeNFCFilter);
問題: 時々動作します....そして時々次のエラーが発生します
私は何を間違っていますか???
編集:これは書き込み方法です
private void write(double newBalance) {
Log.d(TAG, "Write to tag");
//to display new balance on homefragment.
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("newbalance",String.valueOf(newBalance));
editor.commit();
paymentData=new MyPaymentData();
paymentData.setUid(operations.getUid());
paymentData.setCurrency("dkk");
paymentData.setAmount(newBalance);
Log.d(TAG,"WRITE NFC: BALANCE="+ String.valueOf(newBalance));
byte[] bytes = encodePayload(paymentData);
byte[] encrypted = encrypt(bytes);
new WriteTask().execute(encrypted,bytes);
}
編集2:
エラーの後、次の画像を参照してください。 write() メソッドが実際に呼び出され、その機能を実行します。問題は、顧客が醜いアプリ クラッシュ メッセージを見たくないということです..!!