【发布时间】:2021-07-27 21:20:03
【问题描述】:
我正在做一个小项目,我启动我的应用程序,然后想在吐司中显示电池温度。
我用广播接收器来做这个。
当我启动应用程序时,一切顺利,但没有吐司我有 ExampleBroadcastReceiver 没有打开的想法?
当我在 onReceive 中输入日志时,我没有看到任何消息。
这是我的代码,我做错了什么?
ExampleBroadcastReceiver.kt
class ExampleBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if(intent.action == "android.intent.action.BATTERY_CHANGED"){
val temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0) / 10.0
Toast.makeText(context, "${temp}", Toast.LENGTH_LONG).show()
}
}
}
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
AndroidManifest.xml
<receiver android:name=".ExampleBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_CHANGED" />
</intent-filter>
</receiver>
【问题讨论】:
-
在清单中声明的隐式广播接收器自 android Oreo 以来不起作用。您需要有一个处于活动或服务中的接收器,并保持您的应用处于活动状态以接收更新。
-
@Pawel 感谢您的留言。如果关闭应用程序时广播不起作用,您能否向我解释人们如何更新这样的内容:imgur.com/a/cMyFpsA 没有打开应用程序?他们用什么?
标签: android xml android-studio kotlin