我正在为不同的导航项调用相同的活动取决于要求。我的问题是如何避免基于id的同一导航项的并发点击。如果我设置Flags,那些调用同一活动的剩余项目也无效,请帮帮我。
代码
if (id == R.id.nav_Issue_Based) {
try { String fileName = "assessments.pdf";
viewPdfActivity(fileName, "Issue Based");
drawer.closeDrawer(GravityCompat.START);
} catch (Exception e) { e.printStackTrace(); } }
另一个
private void viewPdfActivity(String fileName, String title) {
try {
Bundle bundle = new Bundle();
bundle.putSerializable("file_name", fileName);
b undle.putString("title", title);
startActivity(context, bundle, DocumentsLoaderActivity.class);
}
catch (Exception e) {
e.printStackTrace(); }
}
更多代码
private void startActivity(Context context, Bundle b, Class<?> cls) {
try {
Intent intent = new Intent(context, cls);
if (b != null) {
intent.putExtras(b);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
}
context.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:0)
将您的活动设置为导航,Manifest
中的单个实例为: launchMode =“singleInstance”。它只会在最后一次点击时打开。
答案 1 :(得分:0)
尝试使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = new Intent(LoginActivity.this, HomeScreenActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
或清单文件中的此操作声明您的活动
<activity android:name=".MainActivity"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
了解更多信息read docs