Update Listview from Sms BroadcastReceiver



我在writeMessage活动中有一个列表视图。当用户写消息时,它会显示它写的内容,但当消息收到时,它不会显示。我必须一次又一次地开始活动。我试着注册广播到我的活动,但我做不到。

我定义了我的首要活动:

public class CMesWriteMessage extends Activity {
     private BroadcastReceiver the_receiver = new IncomingSms(){
         @Override
         public void onReceive(Context c, Intent i) {
             addItems();
         }
     };
     private IntentFilter filter = new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED);
...
...

}

并像这样注册:

protected void onResume() {
    // Register reciever if activity is in front
    this.registerReceiver(the_receiver, filter);
    super.onResume();
}
protected void onPause() {
     // Unregister reciever if activity is not in front
     this.unregisterReceiver(the_receiver);
     super.onPause();
}

我哪里错了?

我不知道这是否是整个问题,但super.onPause()/super.onResume()应该是它们各自覆盖中的第一个调用:

protected void onResume() {
    super.onResume();
    this.registerReceiver(the_receiver, filter);
}
protected void onPause() {
    super.onPause()
    this.unregisterReceiver(the_receiver);
}

好的,我改变了我的操作,现在一切都好了。这是正确的代码:

private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
private IntentFilter filter = new IntentFilter(ACTION);

EDïT:

我在广播课上做我的主要操作。在这个活动中,我只更新listview。所以为了达到这个目的,我编辑我的代码如下:

private BroadcastReceiver the_receiver = new IncomingSms(){
         @Override
         public void onReceive(Context c, Intent i) {
             super.onReceive(c, i);
             //My activity special operations.
         }
};  

注意:IncomingSms是我的主要广播接收器类。

相关内容

  • 没有找到相关文章

最新更新