Android 适用于安卓系统的Windows Phone 8同等产品';s StartActivityForResult

Android 适用于安卓系统的Windows Phone 8同等产品';s StartActivityForResult,android,xaml,windows-phone-8,Android,Xaml,Windows Phone 8,我来自安卓系统,正在进入WindowsPhone8 我有一个网页,使用相机解码二维码,这是很好的工作。在Android中,我会使用IntentStartActivityForResult启动此活动,然后将解码后的值返回到原始活动 我已经搜索过了,但在WindowsPhone8中找不到明显的等价物。我目前的想法是使用包含解码值的查询字符串导航到调用页面,并更改后堆栈,但这似乎有点混乱 问题 android中是否有类似的流程,如果有,是否有人能概述一下该方法,以便我可以看到它的实际应用?首先,WP8

我来自安卓系统,正在进入WindowsPhone8

我有一个网页,使用相机解码二维码,这是很好的工作。在Android中,我会使用Intent
StartActivityForResult
启动此活动,然后将解码后的值返回到原始活动

我已经搜索过了,但在WindowsPhone8中找不到明显的等价物。我目前的想法是使用包含解码值的查询字符串导航到调用页面,并更改后堆栈,但这似乎有点混乱

问题


android中是否有类似的流程,如果有,是否有人能概述一下该方法,以便我可以看到它的实际应用?

首先,WP8中没有类似的内容,因此您需要一个变通方法。解决办法可能有所不同,而相关的问题(和答案)是潜在的方法之一。我个人的做法有点不同。我将在这里描述我当前项目的架构,尽管它可能不适用于您的情况,因为我的应用程序非常大,结构复杂。但我会试着解释它如何适用于你的情况

特别是,我当前的应用程序包含所谓的服务(只是我的名字,不是标准的)。它们具有不同的范围(一些用于1页,一些用于应用程序的全局),不同的生存期,等等。本质上,每个服务都是实现定义良好的接口的类,以便其他服务可以使用该接口

其次,服务可以相互依赖。我正在使用Ninject框架进行依赖注入。本质上,如果服务A依赖于服务B,则会产生如下代码:

public class B : IB
{
...
}
public class A
{
    IB b;
    public A(IB b)
    {
        this.b = b;
    }
}
其中IB是服务B实现的接口

然后是视图模型(是的,我使用的是MVVM,如果你想构建一个相当大的WP8应用程序,你可能也应该使用MVVM)。视图模型使用服务执行应用程序功能。一些服务由多个视图模型使用。例如,我有一个服务从web上获取一些数据,并通过定期轮询使其保持最新。web数据在应用程序的多个页面中使用,因此应该在不同的视图模型之间共享。它是通过依赖项注入再次实现的,因此所有感兴趣的视图模型都接受此服务实例作为构造函数参数

public class MainPageViewModel : INotifyPropertChanged
{
    private string webData;
    public MainPageViewModel(IWebDataService service)
    {
        webData = service.CurrentWebData;
        service.WebDataChanged += (o, e) => webData = service.CurrentWebData;
    }
    ...
}

public class DetailPageViewModel : INotifyPropertChanged
{
    private string webData;
    public DetailPageViewModel(IWebDataService service)
    {
        webData = service.CurrentWebData;
        service.WebDataChanged += (o, e) => webData = service.CurrentWebData;
    }
    ...
}

public class WebDataService : IWebDataService
{
    public string CurrentWebData;
    public event EventHandler WebDataUpdated;
    ...
}
Ninject允许我实例化一个IWebDataService实例,以便main和details页面共享它的同一个实例。更新web数据时,会触发一个事件,以便两个视图模型都可以更新其web数据实例,并将此新数据推送到视图中

我是这样做的。您可以潜在地重用此体系结构的某些部分,比如让某个类的单个实例可由不同的页面访问。一个页面将一些新数据放入该单例实例,当数据更新时(触发事件或在构造期间,如果垃圾收集器有足够的时间杀死现有页面和/或视图模型实例),另一个页面将读取更新的数据。他们就是这样分享的


如果你想让我更深入地了解某个话题的细节,请随时发表评论。欢迎Android开发者使用Windows Phone。:)

那又怎么样???我想要的是windows而不是Android。好的,你用mvvm吗?或者其他模式?我还没有使用MVVM,但是我愿意看看任何答案,因为我确信有一些选择。试着检查一下。希望这对你有帮助哇,这是一个多么好的回应,我感谢你的态度和质量。我发现平台之间的整体移动不会太痛苦,我更喜欢VS而不是Eclipse。我对MVVM有一点了解,所以我想我周末有一些家庭作业。VS真的很好,同意。几年前,我们一直在使用Eclipse进行Symbian开发,这也不错,但没有那么好。但在WP开发中最好的东西是C语言,依我看。从Java开始,我希望你也会觉得它很棒。:)(笑)如果我不完全同意的话,我会说你是微软的一个骗子,Haspemulator。不幸的是,我正走另一条路,因为我的WP8应用程序足够成功,让我想要一个更大的池塘。我能问一下你到底创造了什么在手机上如此复杂的东西吗?我的应用程序非常简单,所有操作都发生在服务器端。您可以在此处阅读我的应用程序: