Android 广播接收机中的时区示例
我试图在广播接收机中实现时区更改,但它不起作用。我的要求是,如果我更改时区,它将转到另一个使用广播接收机的活动。有人能举个例子吗 感谢清单中的Android 广播接收机中的时区示例,android,Android,我试图在广播接收机中实现时区更改,但它不起作用。我的要求是,如果我更改时区,它将转到另一个使用广播接收机的活动。有人能举个例子吗 感谢清单中的: 在“TimeZoneChangedReceiver”类中: 覆盖接收(上下文:上下文,意图:意图){ 变量操作:字符串?=intent.action var时区:字符串?=intent.getStringExtra(“时区”) Toast.makeText(上下文、动作+时区、Toast.LENGTH\u LONG.show()) 正确的意图过滤器是“
:
在“TimeZoneChangedReceiver”类中:
覆盖接收(上下文:上下文,意图:意图){
变量操作:字符串?=intent.action
var时区:字符串?=intent.getStringExtra(“时区”)
Toast.makeText(上下文、动作+时区、Toast.LENGTH\u LONG.show())
正确的意图过滤器是“android.intent.action.TIMEZONE\u已更改”
(开头没有“action”。\您的错误代码是否说“它不工作”?当我更改时区时,它不会转到其他活动,因为JBM说它的“android.intent.action.TIMEZONE\u已更改”不执行任何操作。查看文档中显示常量值的位置:更新:在具有API 26及更高版本的设备上,清单中的广播接收器寄存器将不会被调用。您需要执行注册运行时(可能在应用程序的onCreate中)。这也意味着,如果你的应用程序被终止,它将不会收听这些广播。在后台服务中注册它也不是一个真正的解决方案,因为这些也仅限于新设备。不确定现在是否有100%的等效解决方案。。。
In manifest:
<receiver android:name=".TimeZoneChangedReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
</intent-filter>
</receiver>
In your `TimeZoneChangedReceiver` class:
override fun onReceive(context: Context, intent: Intent) {
var action : String? = intent.action
var timeZone: String? = intent.getStringExtra("time-zone")
Toast.makeText(context,action+timeZone,Toast.LENGTH_LONG).show()