android - 在 val 之外获取字符串?
问题描述
我对下面的书面代码有疑问。
我在batteryBroadcastReceiver 中创建了一个名为TEMP 的val,现在我想请求在batteryBroadcastReceiver 之外的数据TEMP,但这不起作用。
有没有人向我解释如何在电池广播接收器之外显示 TEMP
val test = temp
private val batteryBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver(){
override fun onReceive(context: Context?, intent: Intent?) {
if(intent?.action == "android.intent.action.BATTERY_CHANGED"){
val temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0)
// set the text view
tvBatteryTemp?.post{
tvBatteryTemp?.text = "${temp}" + "°C"
startService(this@ForegroundService,"${temp}")
}
}
}
}
解决方案
您可以创建一个全局变量并使用它访问 temp 的值。
代码:
val temp: Int = 0
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Example Code of how the temp value can be accessed now and would be dynamic
val testBtn = findViewById<Button>(R.id.button)
testBtn.setOnClickListener {
Toast.makeText(this,"Your temp value is $temp",Toast.LENGTH_SHORT).show()
}
}
private val batteryBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver(){
override fun onReceive(context: Context?, intent: Intent?) {
if(intent?.action == "android.intent.action.BATTERY_CHANGED"){
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0)
// set the text view
tvBatteryTemp?.post{
tvBatteryTemp?.text = "${temp}" + "°C"
startService(this@ForegroundService,"${temp}")
}
}
}
}
希望这对您有所帮助。快乐编码!:)
推荐阅读
- node.js - 在循环在 node.js 中运行之前执行 for 循环之后的代码
- html - Html header 标签覆盖手机屏幕
- mongoose - 填充 Virtuals 似乎不起作用。谁能告诉我错误?
- c# - 在延迟之前长时间运行的异步方法会发生什么?
- react-native - 错误:在“npm”注册表中找不到“react-native-web-workout-series@0.1.0”所需的包“@wow/common@1.0.0”
- python-3.x - 比较图像并删除每行的相似图像
- laravel - 雄辩的 whereHas 与特定相关实体的约束关系
- javascript - 无法将项目添加到 JS 地图
- duplicates - Google Search Console 返回错误“一个 HTML 标记包含重复两次的相同属性”
- javascript - Node.js Express 在 app.post() 内执行