验证意图是否有效

时间:2018-06-24 08:39:18

标签: java android

public void action(View view){
    Intent intent = new Intent(Settings.ACTION_DEVICE_INFO_SETTINGS);
    if(intent!=null) //here is my problem, it return true always
     {startActivity(intent);}
     else{k++;
         Context context = getApplicationContext();
         CharSequence mesajText = "Failed To Open! " + k;
         int duration = 3;
         Toast screen_message = Toast.makeText(context,mesajText,duration);
         screen_message.show();
         }
}

如何验证我的“意图”是有效的活动(打开时有效)还是无效的活动(打开时发生应用崩溃)?

1 个答案:

答案 0 :(得分:1)

if(intent!=null)将始终求值为true,因为您正在if condition之前初始化意图。如果要检查是否可以处理Intent,请按如下方式使用resolveActivity

Intent intent = new Intent(Settings.ACTION_DEVICE_INFO_SETTINGS);
PackageManager packageManager = getPackageManager();
if (intent.resolveActivity(packageManager) != null) {
    startActivity(intent);
} else{
   k++;
   CharSequence mesajText = "Failed To Open! " + k;
   int duration = 3;
   Toast screen_message = Toast.makeText(this,mesajText,duration);
   screen_message.show();
}