Jai*_*ray 2 java service android android-intent android-activity
我想从服务类中打开共享通过选项。它在 Android 7 中工作正常,但在 8+ 操作系统中它开始显示
android.util.AndroidRuntimeException:从 Activity 上下文外部调用 startActivity() 需要 FLAG_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..."));
Run Code Online (Sandbox Code Playgroud)
Intent.createChooser创建一个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);
Run Code Online (Sandbox Code Playgroud)
您还打电话startService而不是startActivity- 请确保也更正该问题。