gpt4 book ai didi

android - 单体机器人 : What should I do after I catch an unhandled exception?

转载 作者:行者123 更新时间:2023-11-29 21:39:04 36 4
gpt4 key购买 nike

对于我的 Monodroid 应用程序,我想在出现未处理的异常后执行以下操作:

  1. 将错误发送到服务器。
  2. 通知用户应用程序已崩溃(可能使用 toast 消息)。
  3. 优雅地退出应用程序。

我已经实现了#1,但我正在努力实现#2 和#3。

在出现未处理的异常后,Toast 似乎不可用,并且我被警告 it's a bad idea to exit an app on a user's behalf.

谁能指出我正确的方向?

这是我的代码:

using System;
using Android.App;
using Android.Runtime;
using Android.Widget;

namespace MyAppsNamespace
{
[Application]
public class MyApplication : Application
{
public static MyApplication Current { get; private set; }

public MyApplication (IntPtr handle, global::Android.Runtime.JniHandleOwnership transfer) : base(handle, transfer)
{
Current = this;
}

public override void OnCreate()
{
base.OnCreate();
AndroidEnvironment.UnhandledExceptionRaiser += (sender, args) => LogException(args.Exception);
}

public static void LogException(Exception exception)
{
var phoneId = Guid.NewGuid(); // just for testing purposes
var client = AppConfig.ErrorLoggingServiceClient;
var response = client.Send<ErrorLoggingResponse>(new ErrorLoggingEntry
{
PhoneId = phoneId,
ErrorTime = DateTime.UtcNow,
Message = exception.Message,
StackTrace = exception.StackTrace
}); // This works fine (i.e. I've implemented #1)
Toast.MakeText(Context, String.Format("An error occurred. Please call Prod Support at 1-800-555-1212. [Phone Id: '{0}']", phoneId), ToastLength.Short).Show(); // This has no impact.
}
}
}

最佳答案

不确定 Context 指的是什么上下文:

Toast.MakeText(Context, "ERROR", ToastLength.Short).Show();

你可以试试

Toast.MakeText(YourMainApplication.this, "ERROR", ToastLength.Short).Show();

相反。

关于android - 单体机器人 : What should I do after I catch an unhandled exception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17599111/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com