android - 如何重新启动 Android Activity?

标签 android application-restart android-launcher

我正在 Android 中创建一个应用程序,但是当我想更新一些数据时,我想重新启动我的 MainActivity。但我的问题是,当我尝试重新启动我的应用程序时,它崩溃了。

我使用以下代码重新启动我的 Activity

 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

最佳答案

使用它您可以重新启动 Activity 。

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

但根据您的要求,您需要使用 this.recreate(); 重新创建 Activity ;

关于android - 如何重新启动 Android Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16145056/

相关文章:

android - Jetpack compose NavHost 防止重新组合屏幕

ruby - 在退出时优雅地取消订阅 redis

android - 重新启动应用程序以释放堆内存

c++ - QT4:如何重启应用程序?重新设置?

android - SDK >=26 仍需要 mipmap/ic_launcher.png?

java - 从您的应用程序中清除所有应用程序的数据(启动器)

Android "Roboto Light"像素化

android - 我想将用户作为 "guest user"添加到我的 google play 开发者帐户

android - 如何在 Android 应用程序中设置 Google Drive Credentials?

android:以编程方式选择默认启动器