【发布时间】:2017-04-23 12:05:52
【问题描述】:
我在 CustomAdapter 类的 getView() 方法中完成了以下代码。如果我尝试简单地显示 Toast,则会出现 Toast,但如果我执行以下代码进行调用,应用程序会崩溃。我在这里做错了什么?
call.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + phone.getText().toString()));
context.startActivity(callIntent);
}
});
堆栈跟踪显示此错误:
AndroidRuntime: FATAL EXCEPTION: main Process: com.example.hammad.contactme, PID: 26713 android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
【问题讨论】:
-
如果您是 Android 6+,您是否获得了在 Manifest 和 Run time 中拨打电话的正确权限?
-
已添加权限。它不起作用。
-
它也不适用于 ACTION_DIAL。
-
您需要查看the stack trace 以确定崩溃的确切原因。
-
从 Activity 上下文之外调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。
标签: android listview custom-adapter