gpt4 book ai didi

android - 手动更改时间时获取 android.intent.action.TIME_SET 两次

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

我有一个 BroadcastReceiver,它监视 android.intent.action.BOOT_COMPLETEDandroid.intent.action.TIME_SETandroid .intent.action.TIMEZONE_CHANGED

<receiver android:name="SystemBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>

/** 不正确,见下文每当这些操作之一发生时,接收方将打开一个 Activity 。一切正常,除了当我更改时钟的分钟部分时,android.intent.action.TIME_SET 将激活两次,这会导致 Activity 打开两次。
我发现这很奇怪,因为如果我更改时钟的小时部分,android.intent.action.TIME_SET 将只激活一次。*/我的测试手机是 Galaxy Nexus 4.2.1。这是4.2.1的系统bug还是我做错了什么?

------------自己编辑------------这是一些可能有帮助的日志。每当我更改分钟、小时或日期时,我的 Activity 都会启动两次。

02-01 21:16:11.781: D/SystemClock(9012): Setting time of day to sec=1359724560
02-01 21:16:00.023: V/AlarmClock(8932): AlarmInitReceiver finished
02-01 21:16:00.031: D/SystemClock(9012): Setting time of day to sec=1359724560

不知道为什么我只在系统设置部分改了一次时间,系统却调用了两次设置时间。

最佳答案

在我自己的 Nexus 上验证了这个行为。

但是,您不应该从 BroadcastReceiver 启动 Activity。我建议您使用 Notifications !

这样即使你收到两次广播也没关系,因为通知只会更新,不会重复。

关于android - 手动更改时间时获取 android.intent.action.TIME_SET 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14640050/

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