在我的应用程序图标中有一个常见的菜单。点击一个图标将开始一个活动。如果一个活动正在运行,如何预防它被多次点击重新开始?还有我可以将一个活动的状态设置为onPause,总是让它在前台显示吗?
使用
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
开始执行Activity.
如果设置在一个Intent传递给Context.startActivity(),这个标志将导致发起的Activity被带到前面已经开始运行的历史堆栈。
android:launchMode="singleTask"
加上这句,每次打开如果已有此activity,就会打开原来的实例,否则会创建新的activity
在你的activity中创建下面一个实例,这个activity就不会被多次打开。
Class ExampleA extends Activity {
public static Activity classAinstance = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
classAinstance = this;
}
}
如果你想检查这个activity是否是多次打开,再添加这个if语句用做检查。
if(ExampleA.classAinstance == null) {
"Then only start your activity"
}