这是几个星期前的一个问题,当时它偶尔会发散地出现。这很烦人,因为它使我的应用程序崩溃了,但是没有什么太重要了。今天,这个问题开始每时每刻发生。因此我的应用无法使用。
它总是与我的应用程序的应用程序首选项有关。看起来像这样:
public void saveNumberOfNewsChats(int numberOfNewsChats)
{
mPrefsEditor.PutInt(NUMBEROFNEWSCHATS, numberOfNewsChats);
mPrefsEditor.Commit();
}
public int getNumberOfNewsChats()
{
return mSharedPrefs.GetInt(NUMBEROFNEWSCHATS, 0);
}
它总是在getter方法内崩溃。我可以尝试一下解决,但这绝对不是一个好的解决方案...
现在,我实际上是从应用程序内部的每个活动中调用应用程序首选项,但是我可能对异步方法内部发生的此问题有所了解。这样的:
public override async void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
await Task.Run(() =>
{
if (grantResults[0] == Permission.Granted)
{
//Permission granted
Looper.Prepare();
ap.saveLocationPermissionGranted(true);
InitializeLocationManager();
}
else
{
//Permission Denied :(
//Disabling location functionality
Looper.Prepare();
ap.saveLocationPermissionGranted(false);
Toast.MakeText(this, "SUCKS", ToastLength.Short).Show();
}
});
}
因为今天,我设置了权限,所有这些权限都在异步任务中。从今天起,这个问题不再被忽略。
我的另一个想法是,我正在使用许多应用程序首选项。也许这可能是个问题?
请,如果有人可以在这里帮助我。谢谢你!