제목 그대로 백버튼 두번눌렀을때 종료하는게 아니라 새 액티비티를 불러올려고 하는데 (이거 액티비티 다음에 종료하려고 합니다) 코드는 구글링해서
import android.app.Activity;
import android.widget.Toast;
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) {
activity.finish();
toast.cancel();
}
}
private void showGuide() {
toast = Toast.makeText(activity, "\'뒤로\'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT);
toast.show();
}
}
하고
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() {
// TODO Auto-generated method stub
backPressCloseHandler.onBackPressed();
}
를 메인엑티비티에 넣었을땐 잘 실행되더라고요 (종료가 정상적으로 됬습니다)
여기서 새 액티비티 불러올라고
if (System.currentTimeMillis() <= backKeyPressedTime + 2000) {
activity.finish();
toast.cancel();
여기서
if (System.currentTimeMillis() <= backKeyPressedTime + 2000) {
Intent outintent = new Intent(getApplicationContext(), Outtro.class);
startActivity(outintent);
toast.cancel();
}
이렇게 적어서 에뮬실행시키는데 자꾸 오류뜨면서꺼져버립니다;
코드상에는 빨건줄은 안뜨는데.. 뭐가 문제죠?