簡體   English   中英

更新從廣播接收器收到的短信的活動UI

[英]Update activity UI on sms received from broadcast receiver

  1. 我有一個SMSlist_activity.java ,它顯示短信對話的列表。
  2. 我有一個sms_receiver.java ,它是傳入短信的廣播接收器。

現在,當我通過sms_receiver.java接收到一條短信時,我想更新SMSlist_activity.java短信對話列表,當然,此更新僅在SMSlist_activity.java運行且可見時才會發生。

如果有人有想法,我會很高興在這里提出。

最終,我找到了廣播接收器的解決方案。 int sms_receiver.java,收到短信后,我廣播了一個意圖:

            Intent intent2 = new Intent();
            intent2.setAction("co.ir.ts.app.sms.smsumad");
            context.sendBroadcast(intent2);

在SMSlist_activity.java定義的應用清單中,我添加了Intent過濾器,以便我的SMSlist_activity.java可以接收廣播:

    <activity
        android:name=".activity.SMSlist_activity">
        <intent-filter>
            <action android:name="co.ir.ts.app.sms.smsumad" >
            </action>
        </intent-filter>
    </activity>

現在在SMSlist_activity.java主類中定義一個廣播接收器:

private BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
       //Updating UI here
    }
};

在onResume方法中注冊上面創建的接收者:

 @Override
protected void onResume() {
    // TODO Auto-generated method stub
     IntentFilter filter = new IntentFilter();
     filter.addAction("co.ir.ts.app.sms.smsumad");
     registerReceiver(receiver, filter);
    super.onResume();
}

最后在onPause方法中注銷接收者:

 protected void onPause()
{
    unregisterReceiver(receiver);
    super.onPause();
    if (isSentPending)
    {
        unregisterReceiver(sent);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM