由于某些多任务问题导致我的应用程序被Android杀死后,我可以看到我的一个活动MyActivity
:MvxDialogActivity
在应用程序尝试重新创建时崩溃。
也就是说,在将我的应用程序移动到后台并开始在其他应用程序之间切换,直到控制台上显示下一条消息(DDMS)之前,一切正常:
I/ActivityManager( 333): No longer want com.my.app (pid 4444): hidden #22
重新打开应用程序时,它会尝试重新创建其活动,因此其中一个正在与下一个堆栈跟踪崩溃:
UNHANDLED EXCEPTION: System.NullReferenceException: Object reference not set to an instance of an object
at Cirrious.CrossCore.Mvx.Resolve<Cirrious.MvvmCross.Binding.BindingContext.IMvxBindingContextStack`1<Cirrious.MvvmCross.Binding.Droid.BindingContext.IMvxAndroidBindingContext>> () <0x00038>
at Cirrious.MvvmCross.Binding.BindingContext.MvxBindingContextStackRegistration`1<Cirrious.MvvmCross.Binding.Droid.BindingContext.IMvxAndroidBindingContext>.get_Stack () <0x0001f>
at Cirrious.MvvmCross.Binding.BindingContext.MvxBindingContextStackRegistration`1<Cirrious.MvvmCross.Binding.Droid.BindingContext.IMvxAndroidBindingContext>..ctor (Cirrious.MvvmCross.Binding.Droid.BindingContext.IMvxAndroidBindingContext) <0x00017>
at Cirrious.MvvmCross.Binding.Droid.BindingContext.MvxAndroidBindingContext.CommonInflate (int,Android.Views.ViewGroup,Cirrious.MvvmCross.Binding.Droid.Binders.MvxBindingLayoutInflatorFactory) <0x0004b>
at Cirrious.MvvmCross.Binding.Droid.BindingContext.MvxAndroidBindingContext.BindingInflate (int,Android.Views.ViewGroup) <0x0004f>
at Cirrious.MvvmCross.Binding.Droid.BindingContext.MvxBindingContextOwnerExtensions.BindingInflate (Cirrious.MvvmCross.Binding.BindingContext.IMvxBindingContextOwner,int,Android.Views.ViewGroup) <0x000c7>
at Cirrious.MvvmCross.Dialog.Droid.Views.MvxDialogActivity.SetContentView (int) <0x0001f>
at Droid.UI.Impl.MyActivity.OnCreate (Android.OS.Bundle) <0x0008f>
我认为这是因为我在尝试在项目中设置MvvmCross时遇到的一些错误。
此次崩溃还有其他原因吗? 你们当中有些人可以指出如何解决这个崩溃的问题吗?
以下是我的Setup.cs
文件:
public class Setup : MvxAndroidDialogSetup
{
public Setup (Context applicationContext)
: base (applicationContext)
{
}
protected override IMvxApplication CreateApp ()
{
return new MvvmCrossApplication ();
}
}
public class MvvmCrossApplication : MvxApplication
{
public override void Initialize ()
{
RegisterAppStart<ApplicationViewModel>();
}
}
当Android正在重新创建我的App时,它会在初始MvvmCross设置完成之前实例化一个新的MyActivity
实例。也许是因为当App被杀死时,有一个同一类的有效实例。是否有可能发生?
这是我的MyActivity
课程在屏幕上显示的屏幕截图:
这是一个MvxDialogActivity,它有:
android:id="@android:id/list"
);和答案 0 :(得分:0)
从调用堆栈看起来MyActivity.OnCreate
正在调用SetContentView
基于Android.Dialog的活动不在SetContentView
实施期间调用OnCreate
这些对话视图的一些示例如下: