示例#1
0
        public async Task ReactInstanceManager_Lifecycle_Missing_Background()
        {
            var jsBundleFile             = "ms-appx:///Resources/test.js";
            ReactInstanceManager manager = null;
            await DispatcherHelpers.CallOnDispatcherAsync(() => manager = CreateReactInstanceManager(jsBundleFile, LifecycleState.Foreground));

            var listener = new LifecycleEventsListener(new LifecycleEventsListener.Step[]
            {
                LifecycleEventsListener.Step.EnteredBackground,
                LifecycleEventsListener.Step.Suspend,
            });

            await DispatcherHelpers.CallOnDispatcherAsync(async() =>
            {
                var context = await manager.CreateReactContextAsync(CancellationToken.None);
                context.AddBackgroundEventListener(listener);
                context.AddLifecycleEventListener(listener);

                manager.OnSuspend();

                context.RemoveLifecycleEventListener(listener);
                context.RemoveBackgroundEventListener(listener);
            });

            listener.Dispose();
            await DispatcherHelpers.CallOnDispatcherAsync(async() => await DisposeInstanceManager(manager));
        }
        public async Task ReactInstanceManager_Lifecycle_StartSuspended()
        {
            var jsBundleFile = "ms-appx:///Resources/test.js";
            var manager      = CreateReactInstanceManager(jsBundleFile, LifecycleState.BeforeCreate);

            var listener = new LifecycleEventsListener(new LifecycleEventsListener.Step[]
            {
                LifecycleEventsListener.Step.Resume,
                LifecycleEventsListener.Step.Suspend,
            });

            await DispatcherHelpers.CallOnDispatcherAsync(async() =>
            {
                var context = await manager.CreateReactContextAsync(CancellationToken.None);
                context.AddBackgroundEventListener(listener);
                context.AddLifecycleEventListener(listener);

                manager.OnSuspend();

                context.RemoveLifecycleEventListener(listener);
                context.RemoveBackgroundEventListener(listener);
            });

            listener.Dispose();
            ReactNative.Bridge.DispatcherHelpers.Initialize();
        }