如何在 .NET MAUI 安卓应用中实现程序化重启

本指南提供了在 .NET MAUI 安卓应用中通过 Intent.MakeRestartActivityTask 实现应用重启的完整代码示例,并说明了所需的 AndroidManifest.xml 权限设置。

  1. AndroidManifest.xml文件中<manifest>节点下添加代码。

    1
    2
    
    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" android:maxSdkVersion="32"/>
    <uses-permission android:name="android.permission.USE_EXACT_ALARM" />
    
  2. 添加重启代码。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    #if ANDROID
    using Android.App;
    using Android.Content;
    using Android.Content.PM;
    using Java.Lang;
    #endif
    
    #if ANDROID   
       var context = Platform.AppContext;
          PackageManager packageManager = context.PackageManager;
          Intent intent = packageManager.GetLaunchIntentForPackage(context.PackageName);
          ComponentName componentName = intent.Component;
          Intent mainIntent = Intent.MakeRestartActivityTask(componentName);
          mainIntent.SetPackage(context.PackageName);
          context.StartActivity(mainIntent);
          Runtime.GetRuntime().Exit(0);
    
    #endif
    
  3. 需要在非debug情况下测试代码。

Built with Hugo
Theme Stack designed by Jimmy