android activity 退出事件,Android:在Activity.onPause()之后单击事件

在Android应用中,遇到一个问题:当快速点击按钮B后紧接着点击按钮A,新活动启动导致旧活动onPause(),但按钮B的onClick()事件在onPause()后仍被触发,引发应用状态不一致。代码示例显示了按钮A用于启动新活动,按钮B则执行日志记录。当两个点击事件快速连续发生时,如何避免在onPause()后传递按钮B的点击事件,而不使用全局isPaused标志?

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有两个按钮,按钮A使用简单的Activity.startActivity()方法在其onClickListener中启动另一个活动,按钮B在其onClickListener中执行一些其他工作.

当我单击按钮B并紧接在按钮A之后,然后启动新活动,触发旧活动的onPause()生命周期事件,但是触发第二个按钮的onClick事件,但是在Activity.onPause()之后导致某些状态我的应用程序中的不一致.

有没有办法阻止在onPause()之后传递触摸/点击事件而不使用isPaused标志?

**编辑:**我的代码:

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button buttonA = (Button) findViewById(R.id.activity_button);

buttonA.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

startActivity(new Intent(MainActivity.this, TestActivity.class));

}

});

Button buttonB = (Button) findViewById(R.id.log_button);

buttonB.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Log.e("TEST", "onClick");

}

});

}

@Override

protected void onPause() {

super.onPause();

Log.e("TEST", "onPause");

}

}

基本上,如果你足够快,并在按钮A后面点击按钮B,那么在onPause之后会触发B的onClick.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值