我制作了一个带有集合视图的appWidget。为了在集合视图的每个视图上处理click事件,我使用了'setPendingIntentTemplate'和'setOnClickFillInIntent'。它在正常情况下工作正常。它通过点击发送意图来打开目标活动。但是如果一个无效的uri(它不是目标活动的有效uri,但是在语法中,它是一个有效的uri。)被注入到它的意图中,那么widget只是不处理click事件。它不会抛出任何异常或返回任何错误。
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(link);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
view.setOnClickFillInIntent(R.id.image, intent);
有没有办法捕获此错误(由于意图使用无效的uri而未处理click事件)? - 这样,我可以切换到不同的代码来处理这种情况。
答案 0 :(得分:0)
我能够从另一个论坛获得这个问题的解决方案我也发布了同样的问题。
基本上,不能对已经执行的Intent进行异常处理。
但是,在添加PendingIntent之前,有一种方法可以检查目标组件(活动,服务或接收者)是否存在
getPackageManager().queryIntentActivities( intent, flags )
如果返回一个空数组,则意味着intent不能执行任何活动。使用此方法,您可以确定是否添加PendingIntent。