从活动上下文外部调用 startActivity() 错误



我正在使用位置 API 构建一个应用程序,当用户单击按钮时,我想获取当前活动的方向,以便我可以继续执行任务。 这是我得到的错误。 从活动上下文外部调用startActivity()需要
FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗?

我知道我们可以使用addFlags(Intent.FLAG_ACTIVITY_NEW_TASK来解决错误。但问题是我只希望在当前活动中显示该意图的结果。

示例代码。按钮单击

public void getDirections() {
if (mState.getOrder() != null) {
Uri gmmIntentUri;
if (Order.PICKING_UP.equals(mState.getOrder().status)) {
gmmIntentUri = Uri.parse("google.navigation:q="
+ mState.getOrder().pickup.latitude + "," + mState.getOrder().pickup.longitude);
} else {
gmmIntentUri = Uri.parse("google.navigation:q="
+ mState.getOrder().dropoff.latitude + "," + mState.getOrder().dropoff.longitude);
}
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
//mapIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // done to resolve Calling startActivity() from outside of an Activity context issue
mContext.startActivity(mapIntent);
}
}
// context 
mContext = context.getApplicationContext() == null ? context : context.getApplicationContext();

如果你想从Intent对象获取数据,你应该用方法startActivityForResult。

Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
//mapIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // done to resolve Calling startActivity() from outside of an Activity context issue
mContext.startActivityForResult(mapIntent);

最新更新