2014-05-20 130 views
0

我有一个扩展对话框的类,它包含一个用于Pincode的Edittext,我已经注册了一个全局广播来接收短信并解析它,然后从消息中获得Pincode我再派本地广播用下面的代码当我收到短信时,本地广播接收器播出

Intent broadcast = new Intent(); 
broadcast.setAction(SMS_RECEIVED); 
intent.putExtra(SMS_PIN_CODE,msgBody.substring(msgBody.length() - SMS_PIN_CODE_LENGTH)); 
mContext.sendBroadcast(broadcast); 

,然后在我的对话框类我创建广播接收器收听(SMS_RECEIVED),并把价值到用户界面如下

private BroadcastReceiver     mPinCodeReceived = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 

      Toast.makeText(mContext, "I'm Here", Toast.LENGTH_SHORT).show(); 
      if (mPincodeEdittext != null) { 

       String pinCode = intent 
         .getStringExtra(BillingConstatnts.SMS_PIN_CODE); 
       mPincodeEdittext.setText(pinCode); 
      } 
     } 
    }; 

和我已经在onCreat上注册过这个广播对话框类

LocalBroadcastManager.getInstance(mContext).registerReceiver(mPinCodeReceived,new IntentFilter(SMS_RECEIVED)); 

现在我的本地广播的onReceive方法不叫问题的E法,所以任何人都可以请告诉我,如果什么问题吗?

回答

0

好的,这里是我在做消息时更新我的​​UI。我从我的服务思想中得到一个广播,但这不应该是一个概率。

onResume(){ 
      registerReceiver(broadcastBufferReceiver, new IntentFilter(BackgroundActivity.BROADCAST_BUFFER_SEND_CODE)); 

    } 

// set up broadcast receiver 
    private BroadcastReceiver broadcastBufferReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent bufferIntent) { 
      SendCode.this.LoadMessages(alarmNumber); 
     } 
    }; 
+0

不,我已经收到了短信和解析它,我要让是否显示它在我的课的,使用本地广播继承对话框的UI –

+0

从的onCreate删除您的注册,并把它添加到的onResume什么。试试 –

+0

我的班级延长Dialog类,它没有onResume方法 –