我有一个为Windows 8.1和Windows Phone 8.1构建的应用程序。在平板电脑和电话项目中共享的便携式类库中有一个非静态类,其中包含静态成员。在电话中,墓碑上的静态属性会丢失。如何将可移植类库的静态类成员存储在停用的事件中,并在电话生命周期的激活事件中将其还原(移植到可移植类库内的非静态类的当前实例),以便在墓碑后应用程序继续运行,没有任何崩溃。在Windows Phone 8.1墓碑中恢复可移植类库内类的静态属性
0
A
回答
0
这取决于这些静态成员的访问级别。
如果它们是公开的,并且可以直接从Windows Phone应用程序访问它们,那么您可以像在正常的应用程序生命周期处理程序中一样将应用程序的状态保存并恢复它们(或使用SuspensionManager
类,如果这就是你使用的)。这意味着你的可移植类库不关心“应用程序生命周期”或“保存/恢复状态”或类似的东西;相反,您的Windows Phone应用程序有责任提供此行为,并且您的便携式类库可以保持独立于此类Windows Phone特定的要求。
如果它们不是公共的,那么您的便携式类库将需要提供某种方式来保存和恢复其内部状态。您可以公开静态方法来执行此操作,您可以在Windows Phone应用程序的相应应用程序生命周期处理程序中调用此方法。例如,你可能有一个方法在便携式类库,如:
public static void SaveState(Dictionary<string, object> stateDict)
{
// store state of static members in the dict
stateDict["Foo"] = SomeClass.FooStaticMember;
stateDict["Bar"] = SomeClass.BarStaticMember;
...
}
你会打电话给在暂停处理该方法为您的应用程序,例如:
public App()
{
this.InitializeComponent();
this.Suspending += this.OnSuspending;
}
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
// save PCL state here
MyPortableClassLibrary.SaveState(SuspensionManager.SessionState);
await SuspensionManager.SaveAsync();
deferral.Complete();
}
同样,你会当e.PreviousExecutionState == ApplicationExecutionState.Terminated
时,在您的App.OnLaunched
覆盖方法中加载状态。 Pivot App项目模板(或类似项目)包含您可以使用的应用程序生命周期事件的框架代码。
如何存放在停用事件便携式类库的静态类成员和恢复(到便携式类库里面的非静态类的当前实例)...
你的班级是非静态的这一事实并不重要;您在该类中具有静态成员,该成员在该类的所有实例中共享。你不能恢复你的类的一个实例的静态成员的状态;这没有任何意义。
相关问题
- 1. Windows phone 8快速恢复当墓碑
- 2. 的Windows Phone - 墓碑
- 3. Windows Phone 7:与URIs墓碑?
- 4. Windows phone 7 silverlight墓碑
- 5. 墓碑的画布可见性属性
- 6. 是否有可能为Windows Phone 8和8.1创建可移植类库?
- 7. 可移植类库vs类库
- 8. 是否有可能将Windows Phone 7.0 Silverlight类库移植到Windows 10移动中
- 9. WP7墓碑内存保存
- 10. 墓碑清理内存WP7
- 11. 在Windows 8/Windows Phone 8中使用可移植类库MVVM - 页面导航
- 12. “为静态类的备份和恢复操作属性”,在PHP
- 13. 如何将Windows Phone 8应用程序移植到Windows Phone 8.1?
- 14. 从墓碑状态恢复后会发生什么?
- 15. 需要在Windows Phone 8中进行墓碑全景控制
- 16. 处理MediaCapture暂停/恢复Windows Phone 8.1
- 17. 移植/迁移Windows Phone 8.1项目到Windows 10 UWP项目
- 18. MvvmCross和墓碑
- 19. 可移植类库中的SafeHandleZeroOrMinusOneIsInvalid
- 20. 静态类中的静态属性
- 21. StreamReader和可移植类库
- 22. 可移植类库版本
- 23. WP7中的墓碑
- 24. C#可移植类库和嵌套属性的反射
- 25. 墓碑发行
- 26. 导航在应用程序激活Windows Phone 7(墓碑)
- 27. 可移植类库中的并发ObservableCollection
- 28. 可移植类库中的System.Security.Cryptography.Xml?
- 29. WP7从墓碑中恢复并返回页面
- 30. 如何防止应用程序从墓碑中恢复导航?