在这段代码中,我尝试在BroadcastReceiver中显示两次吐司。第一个没有问题,以前我创建了一个活动,但第二个没有问题,吐司没有显示。问题是什么?如何在没有活动的情况下举杯祝酒?问题可能是,如果刚出现祝酒后,应用程序结束了吐司没有出现?
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
}
}
}
}
答案 0 :(得分:0)
我认为这不是最好的解决方案,但我已经通过创建第二个透明活动实现了我想做的事情,并且我在这个透明活动中展示吐司。我想知道是否有可能从BroadcasReceiver展示吐司,没有创建活动。