如何在收到短信时更新应用活动?

时间:2013-09-30 08:08:11

标签: android android-activity android-notifications android-pendingintent android-broadcast

我正在创建一个短信应用程序,当我收到短信时,我可以创建一个通知,点击后启动应用程序。

但是,如果用户在应用程序中收到短信怎么办?如何让活动自行更新?

我正在使用BroadcastReceiver,并在点击通知时启动PendingIntent。

PendingIntent resultPendingIntent =
            PendingIntent.getActivity(
            context,
            0,
            resultIntent,
            PendingIntent.FLAG_UPDATE_CURRENT
        );

2 个答案:

答案 0 :(得分:1)

你可以在活动中加入另一个接收器

public class MainActivity extends Activity {

private IntentFilter filter = new IntentFilter("android.intent.action.SMS_RECEIVED");

    private BroadcastReceiver refreshReceiver = new BroadcastReceiver(){
        @Override
        public void onReceive(Context c, Intent i) {
            refresh();
        }
    };

    @Override
    protected void onPause() {
        context.unregisterReceiver(refreshReceiver);
        super.onPause();
    }


    @Override
    protected void onResume() {
        super.onResume();
        context.registerReceiver(refreshReceiver, filter);
        refresh();
    }

}

答案 1 :(得分:0)

@dlee的答案是正确的,但收到短信时抛出的IntentFilter是这样的:

private IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");