我有2项活动。 在我的第一个,我有一个按钮,当我点击它,它开始第二个活动。 但是当我回到我的第一次并且我第二次点击我的按钮时,我的第二次活动开始但我必须回去两次才能回到我的第一次活动中。
如果再次点击一次,则必须返回3次...
请帮助我。并提前谢谢你:)这是我的代码:
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this._that = this;
_progressDialog = new ProgressDialog(this);
EditText editText = (EditText) findViewById(R.id.MainActivityEditText);
editText.setText("T_F81D4FA3F8");
Button button = (Button) findViewById(R.id.MainActivityButton);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.MainActivityButton ) {
Log.w("MainActivity", "onClick");
_progressDialog.setMessage("Chargement en cours");
_progressDialog.show();
new Thread(new Runnable() {
public void run() {
EditText editText = (EditText) findViewById(R.id.MainActivityEditText);
String s = editText.getText().toString().replace(" ", "");
Log.i("EditText", s);
ID_APPLICATION = s;
//if (! Datas.getInstance().isUpdateDatas())
WebService.getInstance().datas(_that);
LocalBroadcastManager.getInstance(_that).registerReceiver(datasUpdateFail, new IntentFilter("datas-update-fail"));
LocalBroadcastManager.getInstance(_that).registerReceiver(datasUpdate, new IntentFilter("datas-update"));
}
}).start();
}
}
BroadcastReceiver datasUpdate = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
myStartActivity("ACCUEIL");
_progressDialog.dismiss();
}
};
BroadcastReceiver datasUpdateFail = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(MainActivity.this, "Erreur : Veuillez verifier votre identifiant ou votre connexion", Toast.LENGTH_SHORT).show();
_progressDialog.dismiss();
}
};
public void myStartActivity(String page){
Intent intent = new Intent(this, PageActivity.class);
Bundle bundle = new Bundle();
bundle.putString("page", page);
intent.putExtras(bundle);
this.startActivity(intent);
}
答案 0 :(得分:0)
取消注册接收器
@Override
protected void onPause() {
// Unregister receiver
LocalBroadcastManager.getInstance(this).unregisterReceiver(datasUpdate);
LocalBroadcastManager.getInstance(this).unregisterReceiver(datasUpdateFail);
super.onPause();
}
答案 1 :(得分:0)
每次参加此活动,您都会注册收到的内容。所以第二次回来时,你有2个接收器注册。因此,当您单击按钮2时,将打开活动。
完成后,请尝试对regiseter无趣。例如。在开始新活动之前。
LocalBroadcastManager.getInstance(_that).unregisterReceiver(datasUpdateFail);
LocalBroadcastManager.getInstance(_that).unregisterReceiver(datasUpdate);