使用以下代码关闭应用
Context CurrentContext = Android.App.Application.Context;
public void CloseByFinish()
{
var activity = (Activity)CurrentContext;
activity.FinishAffinity();
}
获取特定的强制转换无效异常 使用xamarin 2.5
答案 0 :(得分:1)
针对活动的上下文的特定Cast无效异常
您无法将Android.App.Application.Context
转换为Activity
,如下图所示,它们是不同的类型。
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();
}