0

我正在开发一个使用 SMS 接收数据并将数据存储到数据库中的应用程序。另外,我有一个显示数据库查询结果的活动。现在我想,如果这个特殊活动是打开的,并且一条新消息到达 sms-receiver 中的一些代码重新启动这个活动,如果这个活动没有打开,那么什么都不会发生。

4

1 回答 1

1

您可以在您的活动中注册一个BroadcastReceiver执行活动刷新的活动:

public class YourActivity extends Activity {

    private final BroadcastReceiver myReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
           // refresh UI or finish activity and start again
        }
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        IntentFilter filter = new IntentFilter("ACTION_REFRESH_UI");
        registerReceiver(myReceiver, filter);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

        unregisterReceiver(myReceiver);
    }
}

每当有新消息存储到数据库中时发送广播:

Intent intent = new Intent();
intent.setAction("ACTION_REFRESH_UI");
sendBroadcast(intent);

您还可以为数据库添加一个内容观察器,以获取有关更改的通知并发送广播(有关更多信息,请参见此示例)。

于 2015-03-10T21:39:56.923 回答