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()