TextView
이 Activity
에 올바르게 초기화되었습니다. 문제없이 코드에서 사용할 수 있습니다. onPause()
방법에서는 myTextView.setText("");
을 사용합니다. 홈 버튼을 누르거나 새로운 Activity
을 시작하면 정상적으로 작동하지만 화면의 전원을 끄려면 전원 버튼을 사용하면 setText()
라인이 표시되어 NullPointerException
이 표시됩니다.화면이 꺼져있을 때 OnPause가 NullPointerException을 반환합니다.
onPause()
을 호출하기 전에 클래스 멤버가 전원 끄기 이벤트에 의해 null로 재설정 된 것 같습니다. 이 케이스를 처리하는 올바른 방법은 무엇입니까?
SCREEN_OFF
브로드 캐스트를 수신해야합니까, 아니면 내 코드에 문제가 있습니까?
내 코드는 간단
@Override
protected void onPause(){
myTextView.setText("");
super.onPause();
}
같은 로그 캣 출력
03-04 19:58:44.783: E/AndroidRuntime(6717): FATAL EXCEPTION: main
03-04 19:58:44.783: E/AndroidRuntime(6717): Process: com.myapp, PID: 6717
03-04 19:58:44.783: E/AndroidRuntime(6717): java.lang.RuntimeException: Unable to pause activity {com.myapp/com.myapp.MyActivity}: java.lang.NullPointerException
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2307)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3758)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.ActivityThread.access$900(ActivityThread.java:145)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1212)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.os.Handler.dispatchMessage(Handler.java:102)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.os.Looper.loop(Looper.java:136)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.ActivityThread.main(ActivityThread.java:5081)
03-04 19:58:44.783: E/AndroidRuntime(6717): at java.lang.reflect.Method.invokeNative(Native Method)
03-04 19:58:44.783: E/AndroidRuntime(6717): at java.lang.reflect.Method.invoke(Method.java:515)
03-04 19:58:44.783: E/AndroidRuntime(6717): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
03-04 19:58:44.783: E/AndroidRuntime(6717): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-04 19:58:44.783: E/AndroidRuntime(6717): at dalvik.system.NativeStart.main(Native Method)
03-04 19:58:44.783: E/AndroidRuntime(6717): Caused by: java.lang.NullPointerException
03-04 19:58:44.783: E/AndroidRuntime(6717): at com.myapp.MyActivity.onPause(MyActivity.java:35)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.Activity.performPause(Activity.java:5335)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1233)
03-04 19:58:44.783: E/AndroidRuntime(6717): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2285)
03-04 19:58:44.783: E/AndroidRuntime(6717): ... 11 more
입니다 그리고 여기가 초기화 방법 내 TextView
AsyncTask
내부 초기화 알고
private TextView myTextView;
@Override
public void onResume() {
super.onResume();
//new AsyncTask
//onPostExecute(){
myTextView = (TextView) findViewById(R.id.textView1);
//}}.execute();
}
, 하지만 난 확실히 그것을 사용하실 수 있습니다 Activity
lif ecycle. 나는 Button
을 클릭하면 텍스트가 바뀌고 작동하며, 또한 onPause()
이 작동합니다. 내 Activity
수행 예상대로 onPause()
, 다음 onResume()
및 onPause()
즉시 나중에 전원 버튼을 누를 때 어떤 이상한 이유로 : 화면이
UPDATE ... 꺼져있는 경우에만 발생합니다. 무엇이 이것을 일으킬 수 있습니까?
입니다. logcat 출력을 게시 할 수 있습니까? onPause()가 호출 될 때 textview가 0이되지 않습니다 .. – Decoy
전체 활동 코드 게시 – Raghunandan
@Deacoy 화면이 꺼져있을 때만 발생합니다. – Vektor88