gpt4 book ai didi

android - 如何将数据传递给服务启动的 Activity

转载 作者:行者123 更新时间:2023-11-29 18:16:04 26 4
gpt4 key购买 nike

我必须开发一个应用程序,在用户设置的特定时间提供弹出消息。

我将使用启动服务的 android AlarmManager,该服务将启动包含带有确定按钮的弹出界面的 Activity 。

我想将数据传递给该 Activity ,如何实现(否则我将不得不查询数据库)?

  • 如何在使用 AlarmManager 设置开始时间的同时将数据从 Activity 传递到服务?
  • 稍后如何将该数据传递给服务启动的 Activity ?

此外,如果服务在我的应用程序中启动一个 Activity (不是主要 Activity ),并且数据库处理函数位于单独的类中,数据库是否可访问?

最佳答案

当您将 PendingIntent 对象传递给 AlarmManager.set 方法时,您可以将任何您想要的额外内容放入包含在待定 Intent 中的 Intent 对象中。例如:

Intent intent = new Intent(getApplicationContext(), YourService.class);
intent.putExtra("someKey", someData);
intent.putExtra("anotherKey", anotherData);
PendingIntent pi = PendingIntent.getService(getApplicationContext(), REQUEST_CODE, intent, FLAGS);
alarmManager.set....

然后,随着服务启动,您会收到相同的 Intent 对象:

public void onStartCommand(Intent data, int startId, int flags) {
int data1 = data.getExtra("someKey");
}

从您的服务启动 Activity 时,您也可以这样做:

Intent activityIntent = new Intent(getApplicationContext(), YourActivity.class);
intent.putExtra("key", data1);

事实上,如果您在服务中除了启动 Activity 之外没有做任何特别的事情,为什么不直接在警报中为 Activity 设置一个 Intent?

关于android - 如何将数据传递给服务启动的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010710/

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