gpt4 book ai didi

java - 使用 Intent.createChooser 并收到错误 : Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag

转载 作者:行者123 更新时间:2023-12-04 09:45:07 25 4
gpt4 key购买 nike

我想从服务类中打开共享通过选项。它在 Android 7 中工作正常,但在 8+ 操作系统中它开始显示

android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

我也将此标志包含到我的 Intent 中,但它仍然显示相同的错误。

还有其他方法可以通过服务类中的选项打开共享吗?

                    Intent i = new Intent(Intent.ACTION_SEND);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.putExtra(Intent.EXTRA_STREAM, rasta); //rasta -> Uri obj
i.setType("image/*");
getApplicationContext().startService(Intent.createChooser(i,"Share karna..."));

最佳答案

Intent.createChooser 创建一个 Intent,因此您需要在该 Intent 上设置 FLAG_ACTIVITY_NEW_TASK 标志,例如,

                    Intent i = new Intent(Intent.ACTION_SEND);
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.putExtra(Intent.EXTRA_STREAM, rasta); //rasta -> Uri obj
i.setType("image/*");
Intent chooserIntent = Intent.createChooser(i,"Share karna...");
chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(chooserIntent);

您还调用了 startService 而不是 startActivity - 请确保也更正该问题。

关于java - 使用 Intent.createChooser 并收到错误 : Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62166087/

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