gpt4 book ai didi

Android:在服务和 Activity 之间传递数据

转载 作者:IT老高 更新时间:2023-10-28 23:12:02 25 4
gpt4 key购买 nike

所以我对如何完成整个事情感到非常困惑,我希望有人可以为我稍微分解一下。

我有一项服务应该始终运行,并且在某些时候它需要提醒用户某项任务即将完成(可能通过通知栏图标)。当用户接受任务时,服务需要查看本地数据库,构造一些非原始对象,并将它们交给它刚刚启动的 Activity 。

我看了一遍,对正确的方法感到非常困惑,所以我有几个问题可以帮助我解决这个问题。

  1. 如果一个 Activity 创建了一个本地 SQLite 数据库,那么该应用程序的服务和 Activity 以后可以访问同一个数据库吗?

  2. 服务和 Activity 需要在同一个包中还是单独的包中?我认为不会,但出于某种原因,我记得在其他地方看到过一些关于此的内容。

  3. 我将如何进行从服务到 Activity 的数据传输?我在考虑一个内容提供商,但似乎应该有一种更简单的方法让服务只传递数据。类似于 Intent,但用于非基元。

提前致谢。

最佳答案

  1. 如果Service和Activity类在同一个包里,相信它们应该可以访问同一个私有(private)存储空间。

  2. 我会将它们放在同一个包中,因为它们是同一个整体应用程序结构的一部分。

  3. 将数据作为键值对 bundle 到 Intent 的 extras 中并启动 Activity。


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");

关于Android:在服务和 Activity 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3747448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com