检查上下文是否与意图调用中的类相同

时间:2018-12-03 08:45:03

标签: android android-intent

当前,我有一个调用活动的方法:

  public void startActivity(final Context context, final Class mClass){

                    Intent i = new Intent(context, mClass);
                    i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
                    mContext.startActivity(i);
        }

我需要知道我的上下文和班级是否相同。那可能吗? 我需要这样做,因为如果我已经在该活动(上下文)中,我不想调用相同的活动。

这是我当前如何使用该方法的示例实现:

  @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            // set item as selected to persist highlight
            //     item.setChecked(false);
            // close drawer when item is tapped
            mDrawerLayout.closeDrawers()
            switch (id) {
                case R.id.drawer_home:
                    startActivity(mContext,MainActivity.class);
                    break;
                case R.id.drawer_pay:
                    startActivity(mContext,BillsPaymentActivity.class);
                    break;
                case R.id.drawer_load:
                    startActivity(mContext,BuyAndSellLoadActivity.class);
                    break;

                default:
                    break;
            }
            return false;
        }

2 个答案:

答案 0 :(得分:1)

尝试使用 instanceof 比较具有特定类类型的对象:

if(!(mContext instanceof MainActivity)) {
    // This means context is not of MainActivity
}

答案 1 :(得分:1)

使用方法getClass()获取上下文类并将其与您的类进行比较。

if(!context.getClass().equals(mClass)) {
    // start activity.
}