我试图从扩展BroadcastReceiver的类开始一个活动。如果上下文不是活动上下文但是应用程序上下文如何启动一个Intent
public void onReceive(Context context, Intent intent) {
问题是参数上下文是Application上下文而不是Activity上下文。
有没有办法使用应用程序上下文启动意图?
我试图从扩展BroadcastReceiver的类开始一个活动。如果上下文不是活动上下文但是应用程序上下文如何启动一个Intent
public void onReceive(Context context, Intent intent) {
问题是参数上下文是Application上下文而不是Activity上下文。
有没有办法使用应用程序上下文启动意图?
下面是如何使用上下文调用另一个活动的示例代码, 设置的标志按照您的要求:
public void onReceive(Context context, Intent intent) {
Intent startActivity = new Intent();
startActivity.setClass(context, xxx.class);
startActivity.setAction(xxx.class.getName());
startActivity.setFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(startActivity);
}
是的,只需使用上下文并从该上下文中调用startActivity()
方法即可。
这是不正确;除非Intent包含FLAG_ACTIVITY_NEW_TASK标志,否则不允许应用程序上下文启动Activities。 – tophyr 2015-07-29 16:52:01
这个答案在作品的回答中含糊不清。 要使用应用程序上下文调用startActivity,请包含标志FLAG_ACTIVITY_NEW_TASK。 也考虑将名称从上下文更改为appContext,以便清楚了解您期望的上下文。 – Alon 2016-07-21 17:06:35