context 6

안전한 프레그먼트 컨텍스트 사용법 -How to use fragment context ?

프레그먼트 생명 주기 실행 시onAttach —> onCreate() —> onViewCreated() —> onActivicyCreated() —> onResume() 해제시onPause() — > onDestroyView() — > onDestroy() —> onDetach() 즉,안전하게 context 를 사용 하려면 @Override public void onAttach(Context context) { super.onAttach(context); mContext = context; } 요렇게 해서 사용한다.프래그먼트 이곳 저곳에서 getContext(), getActivity() 를 부르다가 Null 이 발생할 수 있기 때문에 이렇게 부르는 것이 안전. 더 안전 하려면 부를 때마다 체크 하는게 ..

java.lang.IllegalStateException: Fragment not attached to Activity

not attached to Activity --> 프래그먼트에서 viewpager로 pagetAdapter를 사용 할 경우 getItem으로 newInstance 를 하면서 새로운 메모리를 생성하게 되면서 발생 하는 문제.--> 주로 getString() 등을 사용할 때 발생 한다. 새로운 context가 발생하였지만, 제대로 구성 하지 않아서 발생.--> 간단히 해결 하는 방법 Context 를 메인 액티비티의 것을 사용 해야 한다.--> public static synchronized Context getInstance() { return mContext; }--> MainActivity.getInstance.getString() 아래는 코모의 새로운 앱이에요(19/07/01출시) 일상 카운터 - ..

구글 Analytics context와 ApplicationContext ....

구글 아날리틱스를 사용하면 기본적으로 아래 코드가 들어 가야 한다. AnalyticsApplication application = (AnalyticsApplication) context.getApplicationContext(); 하지만 context.getApplicationContext() 가 아니라 context 또는 this 등을 넣으면 java.lang.ClassCastException: cannot be cast to com.xxxx.AnalyticsApplication 이놈을 만나게 된다.. 당연한 얘기지만.... context와 ApplicationContext는 항상 구분해서 잘 쓰도록 하자. Service에서 SharedPreference 사용하기(context와 getApplicati..

Service에서 SharedPreference 사용하기(context와 getApplicationContext차이)

기본적으로 SharedPreferences pref = getContext().getSharedPreferences(key, Context.MODE_PRIVATE); 위와 같은 코드를 사용하면 SharedPreference를 사용하여 앱에서 필요한 부분을 저장하고 불러올 수 있다. 하지만, Service(onReceive 등)와 같은 곳에서는 아래와 같이 getApplicationContext를 사용하여야 sharedPreference를 불러올 수 있다. 만약 위처럼 getContext()를 사용하게 되면 아무것도 얻을 수 없다. mContext.getApplicationContext().getSharedPreferences(key, Context.MODE_PRIVATE); getContext, cont..