gpt4 book ai didi

android - 我如何调用 startActivity() 以使用来自不同类的 ACTION_SEND

转载 作者:行者123 更新时间:2023-11-29 14:20:11 25 4
gpt4 key购买 nike

我正在尝试构建一个 Android 插件来扩展 ACTION_SEND 功能,但是当我尝试调用该 Activity 以使用以下方式共享纯文本时:

context.startActivity(Intent.createChooser(mIntent, title));

我收到这个错误:

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?

问题是,在我的最后一行代码中,我实现了 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));

}

我试过只调用 startActivity 传递实例 mIntent,并且有效,但即使我已经注意到如果你只做这些你可以调用其他 Activity ,但我无法弄清楚我怎样才能通过静态 Intent 。

提前致谢。

最佳答案

可能您正在从服务调用此代码,这是一个警告,表明您正在创建一个新任务(一系列 Activity - 即使用返回只会返回到启动器或上一个任务)

从 createChooser 返回的 Intent 没有设置标志,所以你应该尝试这样做:

Intent i = createChooser(mIntent, mtitle);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

我认为它应该可以工作,但我还没有测试过...

关于android - 我如何调用 startActivity() 以使用来自不同类的 ACTION_SEND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5385724/

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