在我的Android应用程序中,我有一个按钮,当点击时会打开另一个活动。问题是用户可以快速多次点击该按钮,这将打开很多新活动。如何强制它,以便一次只能打开其中一个活动?
我想避免做一些大事,比如禁用按钮或加载加载屏幕。
答案 0 :(得分:1)
设置Intent.FLAG_ACTIVITY_SINGLE_TOP
。这样可以确保只创建一个Activity实例:
如果设置,如果活动已经在历史堆栈的顶部运行,则不会启动该活动。
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_SINGLE_TOP
答案 1 :(得分:1)
如果方案与您描述的一样简单,您可以使用FLAG_ACTIVITY_SINGLE_TOP
启动活动。这将阻止在已经显示新实例的情况下创建新实例。一个粗略的例子:
btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(MainActivity.this, CalledActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
}
}, 1000);
}
});
快速按下按钮将创建许多没有Intent标志的CalledActivity
实例。