当前,我有一个调用活动的方法:
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;
}
答案 0 :(得分:1)
尝试使用 instanceof 比较具有特定类类型的对象:
if(!(mContext instanceof MainActivity)) {
// This means context is not of MainActivity
}
答案 1 :(得分:1)
使用方法getClass()
获取上下文类并将其与您的类进行比较。
if(!context.getClass().equals(mClass)) {
// start activity.
}