【发布时间】:2015-02-25 07:46:30
【问题描述】:
我想直接通过 whatsapp 发送消息,我发现下面的代码有效。但是在我将代码作为通用函数调用移动到另一个 java 文件后,它不起作用并崩溃。那么有什么问题呢?谢谢
之前:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
startActivity(sendIntent);
之后:
public void share2whatsapp(Context context) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
context.startActivity(sendIntent);
}
【问题讨论】:
-
你的日志猫在哪里???
-
上下文不为空。是的,我在 logcat 上找到了一些信息并添加了如下标志:- sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);12-29 14:55:39.558: E/AndroidRuntime(13592): FATAL EXCEPTION: main 12-29 14 :55:39.558: E/AndroidRuntime(13592): android.util.AndroidRuntimeException: 从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?但是,在我完成发送第一条并尝试发送另一条后,whatsapp 不会显示第二条消息。还是有什么问题吗?
标签: android android-intent code-reuse start-activity