我想通过服务类中的选项打开共享。在Android 7中运行正常,但在8+操作系统中,它开始显示
android.util.AndroidRuntimeException:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是您想要的吗?
我也将此标志包含在我的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
,因此您需要在that意向上设置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
-请确保也要更正。