我对Xamarin来说是全新的,并且仍在学习绳索,所以请耐心等待。我正在使用PCLStorage库(https://github.com/dsplaisted/pclstorage)来读取和写入json文件。
我已经在我的PCL中设置了静态类,以便我可以从本机代码中调用它们(不确定这是否是最好的方法,见下文)。传入的rootFolder是FileSystem.Current.LocalStorage。
public static async Task<string> ReadFileContent(string fileName, IFolder rootFolder)
{
IFile file = null;
string text = null;
var files = await rootFolder.GetFilesAsync();
file = files.FirstOrDefault(f => f.Name == fileName);
if (file != null)
{
try
{
text = await file.ReadAllTextAsync();
}
catch (Exception exception)
{
var x = exception.Message;
}
}
return text;
}
public static async Task WriteFileContent(string fileName, IFolder rootFolder, string content)
{
ExistenceCheckResult exist = await rootFolder.CheckExistsAsync(fileName);
if (exist == ExistenceCheckResult.FileExists)
{
IFile file = await rootFolder.GetFileAsync(fileName);
await file.WriteAllTextAsync(content);
}
else
{
IFile file = await rootFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
await file.WriteAllTextAsync(content);
}
}
当我第一次运行Android应用时,这非常有效。它多次读取文件,每件事都有效。但是后来我开启了一个将用户带到网页的意图。当用户被定向回应用程序到另一个活动时,它将停止工作。 “await rootFolder.GetFilesAsync();”抛出一个未处理的异常,没有更多的信息。
恢复应用程序时是否有一些我缺失的东西?
提前致谢。