除非我先创建一个 activity,否则我无法在 BroadcastReceiver 中显示吐司
I can't show a toast inside a BroadcastReceiver unless first I created an activity
在这段代码中,我尝试在 BroadcastReceiver 中显示两次 toast。第一个没有问题,之前我创建了一个 activity,但是第二个 toast 没有显示。问题是什么?如何在没有 activity 的情况下祝酒?问题可能是,如果在显示祝酒词后应用程序结束,祝酒词不显示?
class MyReceiver : BroadcastReceiver() {
val PREFS_NAME = "MyPrefsFile"
override fun onReceive(context: Context, intent: Intent) {
if (intent.action.equals(Intent.ACTION_USER_PRESENT)) { //when unlock
val settings = context.getSharedPreferences(PREFS_NAME, 0)
var veces = settings.getInt("veces", 0)
val limite = settings.getInt("limite", 3)
veces++
val editor = settings.edit()
editor.putInt("veces", veces)
editor.apply()
if (veces % limite == 0) { //
val intent1 = Intent(context, MainActivity::class.java)
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(intent1)
Toast.makeText(context, "Veces $veces", Toast.LENGTH_LONG).show() //works
} else {
Toast.makeText(context, "Veces $veces", Toast.LENGTH_LONG).show() //It doesn't work
}
}
}
}
我想这不是最好的解决方案,但我已经通过创建第二个透明 activity 实现了我想做的事情,我从这个透明 activity.I 中展示了吐司,想知道它是否是无需创建 activity.
即可显示来自 BroadcasReceiver 的祝酒词
在这段代码中,我尝试在 BroadcastReceiver 中显示两次 toast。第一个没有问题,之前我创建了一个 activity,但是第二个 toast 没有显示。问题是什么?如何在没有 activity 的情况下祝酒?问题可能是,如果在显示祝酒词后应用程序结束,祝酒词不显示?
class MyReceiver : BroadcastReceiver() {
val PREFS_NAME = "MyPrefsFile"
override fun onReceive(context: Context, intent: Intent) {
if (intent.action.equals(Intent.ACTION_USER_PRESENT)) { //when unlock
val settings = context.getSharedPreferences(PREFS_NAME, 0)
var veces = settings.getInt("veces", 0)
val limite = settings.getInt("limite", 3)
veces++
val editor = settings.edit()
editor.putInt("veces", veces)
editor.apply()
if (veces % limite == 0) { //
val intent1 = Intent(context, MainActivity::class.java)
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context.startActivity(intent1)
Toast.makeText(context, "Veces $veces", Toast.LENGTH_LONG).show() //works
} else {
Toast.makeText(context, "Veces $veces", Toast.LENGTH_LONG).show() //It doesn't work
}
}
}
}
我想这不是最好的解决方案,但我已经通过创建第二个透明 activity 实现了我想做的事情,我从这个透明 activity.I 中展示了吐司,想知道它是否是无需创建 activity.
即可显示来自 BroadcasReceiver 的祝酒词