Enr*_*iaz 1 android android-intent
我正在尝试构建一个Android插件来扩展ACTION_SEND功能,但是当我尝试使用以下命令调用活动来共享纯文本时:
context.startActivity(Intent.createChooser(mIntent, title));
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
ERROR/AndroidRuntime(838): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
Run Code Online (Sandbox Code Playgroud)
问题是,在我的最后一行代码中,我实现了FLAG_ACTIVITY_NEW_TASK.这是我的代码:
public class ShareMenu{
private Context context;
public ShareMenu(Context context){
this.context = context;
}
public static void buildHomeShareMenu(Context context) {
Intent mIntent = new Intent(android.content.Intent.ACTION_SEND);
mIntent.setType("text/plain");
mIntent.putExtra(Intent.EXTRA_TEXT, mtitle);
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(Intent.createChooser(mIntent, mtitle));
}
Run Code Online (Sandbox Code Playgroud)
我试图只调用startActivity传递实例mIntent,并且工作,但即使我已经注意到你只是做这些你可以调用其他活动,但我无法弄清楚我怎么能通过静态意图.
提前致谢.
sil*_*gle 14
可能你是从一个服务调用这个代码这是一个警告,你正在创建一个新的任务(一系列的活动 - 即使用后退只会回到启动器或前一个任务)
从createChooser返回的intent没有设置标志,所以你应该尝试:
Intent i = createChooser(mIntent, mtitle);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
Run Code Online (Sandbox Code Playgroud)
我认为它应该工作,但我没有测试它...
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |