2016-07-14 1 views
0

ProgressUpdate() 메소드에서 토스트를 표시하려고합니다. Android 4,5에서는 잘 작동하지만 Android 6에는 축배가 표시되지 않으며 예외가 발생하지 않습니다. 내가) getBaseContext (와 getApplicationContext()를 교체 할 경우 예상대로getApplicationContext()를 컨텍스트로 사용하면 안드로이드 6에서 진행 상태가 업데이트 될 때 토스트가 표시되지 않습니다.

@Override 
    protected void onProgressUpdate(String... values) { 
    super.onProgressUpdate(values); 
    Toast.makeText(getApplicationContext(), values[0],  Toast.LENGTH_SHORT).show(); 
    } 

, 토스트 작동 :

여기 내 방법입니다.

내가

그것이 올바른 getBaseContext을 (사용할 수 있나요 상황으로 MainActivity.this를 사용하는 경우가 작동하지 않습니다)? 안드로이드 4,5에서 getApplicationContext()를 사용하고 6에서 작동하지 않는 이유는 무엇입니까?

답변

0

안드로이드 6.0 업데이트를 만들었을 때 어떤 일이 일어 났는지는 확실치 않지만, 일부 컨텍스트 나 그와 비슷한 내용을 포함해야합니다. 여기 두 가지 방법의 차이는 다음과 같습니다 Difference between getContext() , getApplicationContext() , getBaseContext() and "this"

Activity.getApplicationContext은() : 전체 응용 프로그램 (모든 활동의 내부에서 실행중인 프로세스)에 대한 컨텍스트를 돌려줍니다. 현재 활동뿐만 아니라 전체 응용 프로그램의 라이프 사이클에 연결된 컨텍스트 이 필요한 경우 현재 활동 컨텍스트 대신이 값을 사용하십시오.

ContextWrapper.getBaseContext() : 다른 컨텍스트 내에서 의 컨텍스트에 액세스해야하는 경우 ContextWrapper를 사용합니다. 컨텍스트는 내부에서 을 참조하여 ContextWrapper에 getBaseContext()를 통해 액세스합니다.

+0

주셔서 감사합니다. – Gringo

관련 문제