Java 使用Intent.createChooser并获取错误:从活动上下文外部调用startActivity()需要标志\u Activity\u NEW\u TASK标志

Java 使用Intent.createChooser并获取错误:从活动上下文外部调用startActivity()需要标志\u Activity\u NEW\u TASK标志,java,android,android-intent,android-activity,service,Java,Android,Android Intent,Android Activity,Service,我想从服务类中打开股票期权。 它在安卓7中运行良好,但在8+操作系统中开始显示出来 android.util.AndroidRuntimeException:从活动上下文外部调用startActivity()需要标志_Activity_NEW_TASK标志。这真的是你想要的吗 我的意图中也包含了这个标志,但它仍然显示相同的错误 是否有其他方式可以通过期权从服务类中打开共享 Intent i = new Intent(Intent.ACTION_SEND);

我想从服务类中打开股票期权。 它在安卓7中运行良好,但在8+操作系统中开始显示出来

android.util.AndroidRuntimeException:从活动上下文外部调用startActivity()需要标志_Activity_NEW_TASK标志。这真的是你想要的吗

我的意图中也包含了这个标志,但它仍然显示相同的错误

是否有其他方式可以通过期权从服务类中打开共享

                    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上设置
标志\u ACTIVITY\u NEW\u 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
-请确保也更正此问题。

清理并重建您的项目,如果这无助于尝试将该标志添加到清单中,可能您的两个活动都需要该标志?谢谢,先生,它解决了我的问题。我还有一个问题,到目前为止,我的webView工作正常,但现在它显示错误警告:已超出磁贴内存限制,某些内容可能无法绘制。是否与此意图有任何关系?(因为我在webView的downloadmanager中使用此意图)我很高兴它有所帮助!这几乎可以肯定与这个意图代码没有关系——它与网页本身的内容有关,而这是网页之外的内容。