2017-04-20 190 views
-1

我在我的主要活动中有一个位置嘲笑方法。不幸的是,我不能把这个方法放到另一个类中(还是!)。所以,我需要一个服务,每5秒钟从我的主要活动中调用这个方法。所以我在一个服务中创建了一个倒计时,当应用程序在后台时,应该在我的MainActivity中运行该方法。但它没有。Xamarin Android:我可以不创建我的MainActivity的新对象吗?

public void OnTimedEvent(object sender, System.Timers.ElapsedEventArgs e) 
    { 
     Log.Info("2", "CountDown ausgeführt!"); 
     var test = new MainActivity(); 

     test.getMockLocation(); 

    } 

这是我的代码。正如你所看到的,我正在安装我的主要活动的一个新对象,然后在这个活动中请求这个方法。这确实有用。至少Visual Studio不会抱怨。如果我现在在手机上调试我的应用程序,则什么都不会发生我没有得到任何错误或任何东西。 现在,当我运行这个应用程序一步一步,它到达了这一点 “var test = new MainActivity();”

我得到“框架不在模块”。

因此,一旦我要求它安装我的主要活动的新对象,它就基本崩溃。 有人可以告诉我为什么这是? 谢谢:)

回答

0

不幸的是,在Android中你不能创建这样的活动,它们需要由操作系统实例化。另外,仅为一个方法实例化一个完整的活动并不理想,我建议你找到从该活动中获取该方法/函数的方法,以便可以在程序中的任何位置使用它。

+0

谢谢,虐待尽快尝试。生病报告回来:) – user7285912

0

您是否通过Xamarin Forms创建了您的应用程序?如果你这样做了,你可以利用Xamarin Forms MessagingCenter进行后台服务,然后你可以调用你的模拟位置任务。

这是link,它是MessagingCenter的一个非常有用的演练和示例。

+0

谢谢,生病请尽快尝试。生病报告回来:) – user7285912

相关问题