Java startactivity创建两个实例
对于我的android应用程序,我使用一个按钮转到下一个活动。 问题是当我触摸屏幕上的按钮时,会创建一个活动实例,但 我使用performClick()方法以编程方式单击按钮,它将创建活动的两个实例。(performClick()是从回调方法调用的)。 我使用了CLEAR_TOP标志,但它似乎打破了后退按钮。 你知道怎么解决这个问题吗 这就是我的代码的样子:Java startactivity创建两个实例,java,android,start-activity,Java,Android,Start Activity,对于我的android应用程序,我使用一个按钮转到下一个活动。 问题是当我触摸屏幕上的按钮时,会创建一个活动实例,但 我使用performClick()方法以编程方式单击按钮,它将创建活动的两个实例。(performClick()是从回调方法调用的)。 我使用了CLEAR_TOP标志,但它似乎打破了后退按钮。 你知道怎么解决这个问题吗 这就是我的代码的样子: @Override protected void onCreate(Bundle savedInstanceState) {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
startActivity(new Intent(Activity1.this, Activity2.class));
}
});
}
private void A_callback_method(){
if (some_condition_to_launch_activity){
btn.performClick();
}
}
只是一个简单的把戏。创建函数
private void function_name(){
startActivity(new Intent(Activity1.this, Activity2.class));
}
然后在按钮上单击Listener
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
function_name();
}
});
也在一个回调函数中
private void A_callback_method(){
if (some_condition_to_launch_activity){
function_name();
}
}
希望这能解决您的问题。我通过在onResume()方法中添加一个布尔变量将其初始化为false,成功地解决了这个问题,然后执行了以下操作:
private boolean clicked_btn;
private void A_callback_method(){
if ((some_condition_to_launch_activity)&&!clicked_btn){
clicked_btn=true;
btn.performClick();
}
}
A\u callback\u方法可以调用两次吗?这叫什么?