0

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

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

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

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

2 回答 2

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();
    }

}
于 2013-09-30T10:05:52.263 回答
0

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

private IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
于 2014-03-04T10:48:44.130 回答