체크박스가 체크 되었을 때 num과 체크값은 레이아웃을 벗어난 뒤 다시 돌아와도 유지가 됩니다.
여기서 문제가 되는 건 power변수값인데, 버튼을 누를 때마다 true와 false로 변경이 되도록 설정했고
그에 따라 메시지를 띄우게끔 만들었습니다.
처음 버튼을 눌러 power==true 상태를 만든 뒤 해당 레이아웃을 벗어나면 메시지는 계속해서 뜨는데요,
문제는 다시 돌아가 버튼을 누르면 power가 true로 다시 적용되고,
이미 실행중인 메시지 기능이 계속 실행되고 있는 채로 또 메시지 기능이 중복되어 실행이 됩니다.
그런 식으로 어플에 과부하가 걸리더라구요ㅠㅠ
어느 부분이 문제일까요..?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_fb);
editTextPhoneNumber = (EditText)findViewById(R.id.editTextPhoneNumber);
Button bt_twlogin = (Button)findViewById(R.id.tw_login);
chk_auto = (CheckBox) findViewById(R.id.chk_auto);
setting = getSharedPreferences("setting", 0);
editor= setting.edit();
if(setting.getBoolean("POWER", true)){
setting.getBoolean("POWER", true);
}
else{
power = false;
}
if(setting.getBoolean("chk_auto", false)){
editTextPhoneNumber.setText(setting.getString("NUM", ""));
chk_auto.setChecked(true);
}
bt_twlogin.setOnClickListener(this);
checkBluetooth();
}
public void onClick(View v) {
if(chk_auto.isChecked()){
String num = editTextPhoneNumber.getText().toString();
editor.putString("NUM", num);
editor.putBoolean("chk_auto", true);
editor.commit();
}else{
editor.clear();
editor.commit();
}
editor.putBoolean("POWER", power);
editor.commit();
switch(v.getId()){
case R.id.tw_login :
{
handler.sendEmptyMessage(0);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
}