시나리오 :방송 수신 오류
나는 다음과 같은 코드
Intent intent=new Intent();
intent.setAction("writeBalanceToNFCCard");
intent.putExtra("balance", Double.valueOf(result));
getActivity().sendBroadcast(intent);
으로 그리고 MainActivity에 조각에서 방송을 보내고, 나는에서 onCreate 내부가
private final BroadcastReceiver mReceiverWriteNFC=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
double newBalance = intent.getDoubleExtra("balance", 0);
write(newBalance);
}
};
를 수신하고(), MainActivity의 등록입니다.
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 : 오류 후
, 쓰기() 메소드가 실제로 호출하고 그 기능을 수행 얻을, 다음 그림을 참조하십시오. 문제는 고객이 추한 앱 충돌 메시지를보기 싫어한다는 것입니다. !!
MainActivity의 450 행은 무엇입니까? –
write() 메소드 게시 – stinepike
라인 450 : paymentData.setUid (operations.getUid()); – kandroid