【发布时间】:2020-07-28 14:54:59
【问题描述】:
我使用此代码为基础创建了一个适用于 Android 的自定义文档提供程序。
https://docs.microsoft.com/en-us/samples/xamarin/monodroid-samples/storageprovider/
这允许在浏览/保存文档时将新驱动器映射到文档文件夹。
如果由于密码超时而出现异常,我想弹出现有的应用程序,以便用户可以再次输入他们的凭据进行登录。
这可能吗?作为我正在寻找的示例,如果 QueryRoots 因特定异常而失败,我可以运行一些东西来在此处弹出应用程序界面吗?
public override ICursor QueryRoots(string[] projection)
{
Log.Verbose(TAG, "queryRoots");
var result = new MatrixCursor(ResolveRootProjection(projection));
try
{
if (!IsUserLoggedIn())
{
return result;
}
MatrixCursor.RowBuilder row = result.NewRow();
... other init code here
}
catch (Exception ex)
{
if (ex.Message == "NoSessionException")
{
// LOGIC TO BRING BACK APP TO LOG IN AGAIN HERE...
}
}
return result;
}
【问题讨论】:
-
哪一行代码导致密码超时异常?你如何捕捉到这个异常?如果使用 try-catch 语句,是否可以尝试重新打开现有应用让用户重新登录?
-
上面的代码只是例子,但是你能看到那里的try catch吗,它会被扔在这里然后被catch块捕获。我猜我正在寻找答案是如何启动应用程序的新实例,或者如何在这个 catch 块中将现有正在运行的应用程序带到前台?任何想法我如何做到这一点?
标签: android xamarin xamarin.forms xamarin.android