所以我真的对如何做这整个事情感到困惑,我希望有人能为我分析一下。
我有一个应该始终运行的服务,在某些时候,它需要提醒用户某个任务即将完成(可能是通过一个通知栏图标)。当用户接受任务时,服务需要查看本地数据库,构造一些非原语对象,并将它们提供给刚刚启动的活动。
我已经看了一遍,对于正确的方法感到非常困惑,所以我有几个问题来帮助我理解它。
,
提前谢谢。
发布于 2010-09-20 05:56:07
Intent intent = new Intent(this, SecondActivity.class);
Bundle b = new Bundle();
// see Bundle.putInt, etc.
// Bundle.putSerializable for full Objects (careful there)
b.putXXXXX("key", ITEM);
intent.putExtras(b);
startActivity(intent);
// -- later, in Activity
Bundle b = this.getIntent().getExtras();
int i = b.getInt("key");
发布于 2010-09-20 09:04:25
在同一应用程序中,服务和活动可以访问相同的Sqlite数据库。我建议使用sqlite db。为简单起见,将您的服务连接设置为本地连接,这样就不需要AIDL接口和进程间通信之类的东西。
在服务中,要通知用户,请使用NotificationManager。您可以将可序列化对象从服务传递到意图,然后传递到启动的活动,但我建议改为传递db ID。
我们已经构建了一个新的Android ORM工具,您可以使用它来完成此任务。它包括可用于构建应用程序的原型、活动和服务类。我还没有一个使用该服务的示例应用程序,但我将在下一步对其进行编码,并尽快将其上线。
你看..。
我的博客..。
我目前在我正在开发的应用程序中做了一些相当繁重的db工作。服务检查服务器是否有更新,实际上是做你想做的事情。这都是非常简单的事情。
https://stackoverflow.com/questions/3747448
复制相似问题