我的应用程序有一个按钮,指向(应该引导,确切:) :)到GooglePlay中的另一个应用程序页面。按钮的点击反应如下:
public void pressedPurchaseButton(View view)
{
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.infmanrb.multrainer"));
startActivity(browserIntent);
}
但是,在模拟器中,按下按钮会导致异常:
Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.infmanrb.multrainer }
我猜想仿真器上没有安装GooglePlay - 这就是原因。但无论如何,避免应用程序崩溃的正确方法是什么?我可以提前检查意图是否会被处理?或者唯一的方法是尝试捕获异常?
答案 0 :(得分:1)
使用这样的实用方法:
public static boolean isIntentHandleable(Context context, String action) {
final PackageManager manager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list =
manager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
将您想要的意图传递给上下文参考。如果返回false,则无法处理此操作。
也请检查此链接:Check if intent uri is available