마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 Toast와 onBackPressed 모르는게 있는데 부탁드립니다ㅜㅜ

0 추천

기존에 있던 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();
    }
 }

어떻게 해야 둘이 충돌이 안일어나고 구현이 되는지 궁긍합니다

익명사용자 님이 2017년 11월 12일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...