gpt4 book ai didi

Android 日历服务和应用程序

转载 作者:行者123 更新时间:2023-11-30 02:45:21 24 4
gpt4 key购买 nike

我需要你的帮助。我是 Java 开发人员,但还不是 Android 开发人员 ;)

我想开发一个具有以下功能的应用程序(4.0.3 及更高版本):
- 应用:
+ 应用程序启动并提供一些设置
- 服务:
+ 我需要一个在 android 启动时启动的后台服务
+ 服务必须触发和检查新的日历事件
+ 该服务检查事件,在某些情况下它会打开一个弹出窗口

我做了一些教程并检查了一些 android 类。我的步骤和问题:

  1. 使用用户界面创建 Activity 以进行设置。您通常在哪里存储设置?电话上的区域设置或是否有一些云解决方案?
  2. 创建服务。我需要什么样的服务?
  3. 如何在启动时触发服务?
  4. 如何在每天早上(没有启动时)触发该服务?警报管理器?
  5. 如何在新的或修改的日历事件上触发该服务?
  6. 我可以在服务中调用弹出窗口吗?

要阅读日历事件,我会使用 Calendar Provider。对于弹出窗口,我将创建一个带有在服务中调用的自定义布局的 AlertDialog。

这可行吗?感谢您的回答和提示。

编辑

感谢您提供有用的答案。经过一些测试后,我有一些后续问题。

Activity

public class MainActivity extends Activity {
// On the app the user can edit some setting
// But the app needn't be started that the service runs!!
// The service must be able to read the settings from this activity
}

BroadcastReceiver(用于启动)

public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
// Start of the service (TriggerService)
}
}
}

AlarmManager 服务

public class TriggerService extends IntentService {
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
@Override
protected void onHandleIntent(Intent intent) {
// force invoke of CalendarChecker if we come from BootReceiver, then
// create the AlarmManager
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, CalendarChecker.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);

// Set the alarm to start at 8:00 a.m.
Calendar calendar = Calendar.getInstance();
...

// Set repeating interval
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
}

日历检查器:

public class CalendarChecker {
// Checks the calendar events on the device and opens in some case a popup e.g.
...
CustomCalendarDialog dialog = new CustomCalendarDialog();
dialog.show(getFragmentManager(), "showPopup");
}

这是我的想法。但现在的问题是:
- 在 TriggerService 中,我需要 Activity 的上下文 - 但我怎样才能得到它?
- 在 CalendarChecker 中,我需要 Activity 的 fragmentmanager - 但我怎样才能得到它?

感谢您的回答。

最佳答案

Create an activity with the ui for the settings. Where do you usually store settings? Locale on phone or are there some cloud solutions?

在手机上,使用sharedpreference或者sqlitedatabase进行设置

Create an service. What kind of service I need?

简单的服务,我推荐使用START_STICKY

How can I trigger the service on startup?

使用引导接收器

How can I trigger the service every morning (when I have no startup)? AlarmManager?

是的,警报管理器很好

How can I trigger the service on new or modified calendar events?

阅读这个答案 https://stackoverflow.com/a/6175930/2923194

Can I invoke a popup in a service?

创建 pop uo Activity 并从服务调用它

关于Android 日历服务和应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25135571/

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