ボタンAは、単純なActivity.startActivity()メソッドを使用してonClickListener内で別のアクティビティを開始し、ボタンBはそのonClickListener内で他の作業を行います。Activity.onPause()の後のイベントをクリックします。
ボタンBをクリックした直後に新しいアクティビティが開始され、古いアクティビティのonPause()ライフサイクルイベントは発生しますが、2番目のボタンのonClickイベントは発生しますが、Activity.onPause()の後私のアプリにいくつかの状態の不一致が生じる。
isPausedフラグを使用せずにonPause()の後にタッチ/クリックイベントが配信されないようにする方法はありますか?
**編集:**私のコード:基本的に
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");
}
}
あなたは十分に高速であり、その後、BのonClickがonPause後に解雇されたボタンA後のボタンBの右をクリックした場合。
あなたが助けようとしている誰にも明確にするために何をしようとしているのか、いくつかのコードを投稿できますか? –
onPause()が起動された後にクリックイベントが配信されないようにするだけです。 – Mariusz
onClickイベントが自動的に発生することはありません。あなたのコードを入力すれば、われわれの問題を見つけることができます。 – Sayem