【发布时间】:2014-10-12 23:43:19
【问题描述】:
我在同一个应用中有一个服务(Foreground、STICKY)和一个活动(LaunchMode.SingleTask)。
有2个mvvmcross设置场景:
- 服务从开机启动,mvvmcross 使用 'setup.EnsureInitialized' 方法初始化
- 服务从Activity启动,mvvmcross以“经典”方式初始化
有时由于内存压力低或意外异常,我的服务被杀死或死亡。
然后点击我的启动器,
10-13 01:05:06.699 497 507 I ActivityManager: START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=LoneWorker.Client.Android.App/loneworker.client.android.app.TrialSplashScreen bnds=[240,223][360,379] u=0} from pid 11747
10-13 01:05:06.769 497 7269 I ActivityManager: Start proc LoneWorker.Client.Android.App for activity LoneWorker.Client.Android.App/loneworker.clientandroid.app.views.HomeView: pid=11980 uid=10081 gids={3003, 1015, 1023, 1028}
但随后启动画面不像正常的应用启动那样出现,并且应用程序立即失败。
10-13 01:05:07.959 11980 11980 I MonoDroid: UNHANDLED EXCEPTION:
10-13 01:05:07.969 11980 11980 I MonoDroid: System.NullReferenceException: Object reference not set to an instance of an object
10-13 01:05:07.969 11980 11980 I MonoDroid: at Cirrious.CrossCore.Mvx.Resolve<Cirrious.MvvmCross.Plugins.Messenger.IMvxMessenger> () <0x00038>
10-13 01:05:07.969 11980 11980 I MonoDroid: at LoneWorker.ClientAndroid.App.Views.HomeView..ctor () <0x0002f>
10-13 01:05:07.969 11980 11980 I MonoDroid: at (wrapper dynamic-method) object.ee0d83da-1657-4884-bf34-4fc266ad42f0 (intptr,object[]) <0x0003f>
10-13 01:05:07.969 11980 11980 I MonoDroid: at Java.Interop.TypeManager.n_Activate (intptr,intptr,intptr,intptr,intptr,intptr) <0x00283>
10-13 01:05:07.969 11980 11980 I MonoDroid: at (wrapper dynamic-method) object.2fd07179-5f93-420a-8653-1fbe1c8a2f2e (intptr,intptr,intptr,intptr,intptr,intptr) <0x0006b>
在日志中我只有一个例外,因为 Mvx 容器无法解析信使。 => 它不能仅仅因为设置过程没有开始而解决。 它的行为就像应用程序已经初始化...
那么上一个崩溃服务中的上一个应用程序单例是否仍在某个地方?
我可以强制应用重新初始化吗?
我对这种奇怪的行为有点困惑......
【问题讨论】:
标签: mvvmcross application-lifecycle