You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms应用从后台恢复时持续重启问题求助

解决Xamarin Forms闪屏页导致后台恢复重启的问题

核心修改思路

问题根源是SplashActivity的OnResume()方法每次触发都会启动MainActivity,包括应用从后台恢复的场景。要解决这个问题,关键是区分首次启动和后台恢复状态,仅在应用首次启动时触发MainActivity的跳转逻辑。

具体修改步骤

  1. 添加启动状态标记
    在SplashActivity中定义一个静态布尔变量,用来记录MainActivity是否已经完成首次启动:
private static bool isMainLaunched = false;
  1. 调整OnResume方法逻辑
    只有当标记为false时,才执行启动MainActivity的操作,启动完成后将标记置为true:
protected override void OnResume()
{
    base.OnResume();

    if (!isMainLaunched)
    {
        isMainLaunched = true;
        StartActivity(new Intent(this, typeof(MainActivity)));
    }
}
  1. 优化Activity配置项
    给SplashActivity添加NoHistory = true属性,确保闪屏页不会留在任务栈中,避免用户按返回键回到闪屏页;同时设置LaunchMode = LaunchMode.SingleTop,防止SplashActivity被重复创建:
[Activity(Label = "你的应用名称", 
          MainLauncher = true, 
          LaunchMode = LaunchMode.SingleTop, 
          Theme = "@style/MyTheme.Splash", 
          NoHistory = true)]
public class SplashActivity : AppCompatActivity
{
    // 上述代码逻辑
}

额外注意事项

MainActivity建议使用默认启动模式(不额外指定LaunchMode),或者设置为SingleTask,确保应用从后台恢复时能正确回到之前停留的页面状态。

内容的提问来源于stack exchange,提问作者Sreejith Sree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:07:15