上下文到活动的特定Cast invaild异常

时间:2018-01-11 06:44:32

标签: xamarin.android

使用以下代码关闭应用

   Context CurrentContext = Android.App.Application.Context;

    public void CloseByFinish()
    {
        var activity = (Activity)CurrentContext;

        activity.FinishAffinity();

    }

获取特定的强制转换无效异常 使用xamarin 2.5

1 个答案:

答案 0 :(得分:1)

  

针对活动的上下文的特定Cast无效异常

您无法将Android.App.Application.Context转换为Activity,如下图所示,它们是不同的类型。

enter image description here

作为David Wasser said;

  

FinishAffinity()不用于“关闭应用程序”。它用于从当前任务中删除属于特定应用程序的许多Activity(可能包含属于多个应用程序的Activity。)

     

即使你完成了应用程序中的所有Activity,托管你的应用程序的操作系统进程也不会自动消失(就像你调用System.exit()时那样)。 Android最终会在它进入时终止你的进程。你无法控制这一点(这是有意的)。

建议:

您可以使用以下代码关闭您的应用:

private void CloseApp()
{
    Java.Lang.JavaSystem.Exit(0);// Close this app process
    Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
}

更新:

如果您在FinishAffinity中使用Activity,请修改以下代码:

public void CloseByFinish()
{
    this.FinishAffinity();
}