【发布时间】:2016-11-17 00:40:02
【问题描述】:
有两个按钮,按钮 A 在其 onClickListener 中使用简单的 Activity.startActivity() 方法启动另一个活动,按钮 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。
【问题讨论】:
-
您能否发布一些您正在尝试做的事情的代码,以便让任何想要提供帮助的人更清楚?
-
我只是不想在 onPause() 被触发后传递点击事件。
-
onClick 事件无法自动触发。如果您输入您的代码,那么我们可以更好地理解以找出我们的问题
-
@Sayem 它不会自动发生,我写道我点击了两个按钮
-
@VigneshKarthikeyan 我添加了重现问题的代码。
标签: android activity-lifecycle