2013-04-22 5 views
1

Я создаю приложение на Android, но когда я хотел бы обновить некоторые данные, я хочу перезапустить мою MainActivity. Но моя проблема, когда я пытаюсь перезапустить приложение, падает.Как перезапустить Android-активность?

Я использую следующий код для перезапуска моей деятельности

case R.id.update: 
     admin = false; 
     Intent intent1 = getIntent(); 
     finish(); 
     startActivity(intent1);  
     break; 

мой журнал является

04-22 12:28:10.444: E/AndroidRuntime(11867): FATAL EXCEPTION: main 
04-22 12:28:10.444: E/AndroidRuntime(11867): java.lang.RuntimeException: Unable to start activity ComponentInfo{package_____________/package________.LauncherGridActivity}: java.lang.NullPointerException 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.os.Looper.loop(Looper.java:137) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.ActivityThread.main(ActivityThread.java:4424) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at java.lang.reflect.Method.invokeNative(Native Method) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at java.lang.reflect.Method.invoke(Method.java:511) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at dalvik.system.NativeStart.main(Native Method) 
04-22 12:28:10.444: E/AndroidRuntime(11867): Caused by: java.lang.NullPointerException 
04-22 12:28:10.444: E/AndroidRuntime(11867): at com.___________.ApplicationManager.loadFilteredNames(ApplicationManager.java:228) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at com______.ApplicationManager.loadApplications(ApplicationManager.java:65) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at co___.LauncherGridActivity.onCreate(LauncherGridActivity.java:142) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.Activity.performCreate(Activity.java:4465) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
04-22 12:28:10.444: E/AndroidRuntime(11867): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
04-22 12:28:10.444: E/AndroidRuntime(11867): ... 11 m 
+0

Intent intent1 = новый Intent (MainActivity.this, MainActivity.class); startActivity (intent1); Конец(); – Raghunandan

+0

Что-то не так с методом 'loadFilteredNames()' в вашем коде при перезапуске. Отправьте этот код. –

+1

at com .___________. ApplicationManager.loadFilteredNames (ApplicationManager.java:228) Некоторая переменная имеет значение null в этой строке. Убедитесь, что вы ее инициализировали перед использованием. Я использовал тот же самый код для перезагрузки, и он работал нормально. Так что, возможно, проблема связана с нулевой переменной. Pls отправляет указанную выше строку. –

ответ

1

Использование этого вы можете перезапустить деятельность.

Intent intent = getIntent(); 
finish(); 
startActivity(intent); 

Но согласно вашему требованию вам необходимо восстановить деятельность с помощью this.recreate();

+0

Пользователь уже пытается использовать этот же код. –

0

попробовать, как этот

Intent intent = new Intent(YourActivityName.this,YourActivityName.class); 

startActivity(intent); 

finish();