Xamarin.Android:启动新意向

Xamarin.Android: starting a new intent

提问人:quilkin 提问时间:6/8/2017 最后编辑:Communityquilkin 更新时间:6/7/2018 访问量:8992

问:

我的目标是 android 4.4 并启动了这样的服务

start.Click += delegate {
    StartService(new Intent("com.xamarin.LocationService"));
    start.Enabled = false;
    stop.Enabled = true;
};

一切都很好。现在我的目标是 6.0,并从这个线程中发现这并不安全,我应该这样做:

Intent serviceIntent = new Intent(context,MyService.class);
context.startService(serviceIntent);

但我无法弄清楚“new Intent()”的参数应该是什么。类名是“LocationActivity”,但如果我这样做

serviceIntent = new Intent(this, typeof(LocationActivity));
context.startService(serviceIntent);

它编译正常,但服务实际上没有启动。

该线程中标记的答案也表明了这一点

Intent bi = new Intent("com.android.vending.billing.InAppBillingService.BIND");
bi.setPackage("com.android.vending");

但是如果我尝试这样做,我发现“意图不包含setPackage的定义”。

那么,有人可以帮我解决这个问题吗?提前致谢。

Xamarin.android

评论


答:

9赞 Matheus Souza 6/8/2017 #1

如果要启动活动,则需要使用 StartActivity 而不是 StartService 然后使用它,但从 StartService 更改为 StartActivity。

serviceIntent = new Intent(this, typeof(LocationActivity));
context.startService(serviceIntent);

serviceIntent = new Intent(this, typeof(LocationActivity));
context.StartActivity(serviceIntent);

评论

0赞 quilkin 6/8/2017
啊!我确实想启动一项服务,而不是一项活动。因此,我的论点应该是我想要启动的服务类型,而不是它开始的活动类型!所以你的回答间接地把我引向了解决方案:new Intent(this, typeof(LocationService))