Android P新特性:强制执行 FLAG_ACTIVITY_NEW_TASK 要求
在 Android P 中,不能从非 Activity 环境中启动 Activity,除非传递 Intent 标志 FLAG_ACTIVITY_NEW_TASK
。 如果您尝试在不传递此标志的情况下启动 Activity,则该 Activity 不会启动,系统会在日志中输出一则消息:
Calling startActivity() from outside of an Activity context requires the
FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
解决方式:
Intent intent = new Intent(context, XXXActivity.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
context.startActivity(intent);
如果通过startActivityForResult
启动一个FLAG_ACTIVITY_NEW_TASK
的intent,则无法通过onActivityResult
获取要启动的component的返回结果。新的intent activity一旦启动,则调用startActivityForResult
的activity会立即回调进onActivityResult方法中,且resultCode=Activity.RESULT_CANCELED
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/29/android-p-new-feature-force-flag-execution-activity-new-task-requirements/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论