Xamarin,Android:“ System.ArgumentException:句柄必须有效。参数名称:instance”

时间:2018-08-14 10:53:31

标签: android

这是几个星期前的一个问题,当时它偶尔会发散地出现。这很烦人,因为它使我的应用程序崩溃了,但是没有什么太重要了。今天,这个问题开始每时每刻发生。因此我的应用无法使用。

它总是与我的应用程序的应用程序首选项有关。看起来像这样:

    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();
            }
        });
    }

因为今天,我设置了权限,所有这些权限都在异步任务中。从今天起,这个问题不再被忽略。

我的另一个想法是,我正在使用许多应用程序首选项。也许这可能是个问题?

请,如果有人可以在这里帮助我。谢谢你!

0 个答案:

没有答案