我开发了一个应用程序,它接收一个广播,然后启动一个Activity
,在其中Activity
查询一个ContentProvider
实时从 DNS 中提取信息的应用程序。
我希望能够改组这个,而不是去:
BroadcastReceiver.onReceive() {
Intent intent = new Intent(...);
intent.setData(...); // set a single String data
context.startActivity(intent);
}
Activity.onCreate() {
String value = intent.getData(); // get the String data
Cursor = ContentProvider.query(search);
...
setContentView(...);
}
它去:
BroadcastReceiver.onReceive() {
Cursor = ContentProvider.query(...);
if (cursor != null) {
Intent intent = new Intent(...);
// how do I pass the cursor?
getContext().startActivity(intent);
}
}
Activity.onCreate() {
// how do I retrieve the cursor?
setContentView(...);
}
即,如果query()
没有返回任何数据,我不想错过启动
Activity
,并允许广播消息正常通过。
如果query()
确实返回数据,我希望Cursor
将其提供给Activity
,这样我就不必再去查询数据了。
反过来,它Activity
有自己的用户界面,用户需要对其做出响应。
这可能吗?