gpt4 book ai didi

android - 来自 BroadcastReceiver 的 startActivity()

转载 作者:IT老高 更新时间:2023-10-28 21:34:19 26 4
gpt4 key购买 nike

我正在尝试使用 onPause() 方法中实现的以下 BroadcastReceiver 在充电时自动启动我的夜间应用程序:

BroadcastReceiver test = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);
Intent i = new Intent(context, NightClock.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
};
registerReceiver(test, new IntentFilter(Intent.ACTION_POWER_CONNECTED));

插入 USB 电缆时会触发 onReceive() 方法,但 Activity 不会启动。但是日志显示了这一点:

I/ActivityManager(   79): Starting activity: Intent { flg=0x10000000 cmp=com.meins.nightclock/.NightClock }

任何想法为什么日志显示 Activity 已启动,但没有任何反应?

最佳答案

您已将上下文作为参数传递给 onRecieve() 方法,因此只需使用:

 @Override
public void onReceive(Context context, Intent intent) {
//start activity
Intent i = new Intent();
i.setClassName("com.test", "com.test.MainActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}

它可以工作,当然你必须将包和 Activity 类名称更改为你自己的。

关于android - 来自 BroadcastReceiver 的 startActivity(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com