기존에 있던 toast와 소스때문에 현재 toast와 onbackpressed가 구현이 안됩니다
기존에 있던 소스는
private static Toast sToast;
public boolean onKeyDown (int keycode, KeyEvent event)
{
switch (keycode) {
case KeyEvent.KEYCODE_VOLUME_UP:
seekbar.incrementProgressBy(+5);
if (sToast == null) {
sToast = Toast.makeText(this, "밝기 UP", Toast.LENGTH_SHORT);
} else {
sToast.setText("밝기 UP");
}
sToast.show();
break;
case KeyEvent.KEYCODE_VOLUME_DOWN:
seekbar.incrementProgressBy(-5);
if (sToast == null) {
sToast = Toast.makeText(this, "밝기 DOWN", Toast.LENGTH_SHORT);
} else {
sToast.setText("밝기 DOWN");
}
sToast.show();
break;
}
return true;
}
그리고 인터넷에서 찾아서 구현해볼려고 하는 소스는
BackPressCloseHandler.java
import android.app.Activity;
import android.widget.Toast;
import android.content.Intent;
public class BackPressCloseHandler {
private long backKeyPressedTime = 0;
private Toast toast;
private Activity activity;
public BackPressCloseHandler(Activity context) {
this.activity = context;
}
public void onBackPressed() {
if (System.currentTimeMillis() > backKeyPressedTime + 2000) {
backKeyPressedTime = System.currentTimeMillis();
showGuide();
return;
}
if (System.currentTimeMillis() <= backKeyPressedTime + 2000) {
toast.cancel();
Intent t = new Intent(activity, MainActivity.class);
activity.startActivity(t);
activity.moveTaskToBack(true);
activity.finish();
android.os.Process.killProcess(android.os.Process.myPid());
}
}
public void showGuide() {
toast = Toast.makeText(activity, "한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT);
toast.show();
}
}
MainActitivity.java
public class MainActivity extends AppCompatActivity {
private BackPressCloseHandler backPressCloseHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 뒤로가기 핸들러
backPressCloseHandler = new BackPressCloseHandler(this);
}
@Override
public void onBackPressed() {
backPressCloseHandler.onBackPressed();
}
}
어떻게 해야 둘이 충돌이 안일어나고 구현이 되는지 궁긍합니다