提问人:quilkin 提问时间:6/8/2017 最后编辑:Communityquilkin 更新时间:6/7/2018 访问量:8992
Xamarin.Android:启动新意向
Xamarin.Android: starting a new intent
问:
我的目标是 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的定义”。
那么,有人可以帮我解决这个问题吗?提前致谢。
答:
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))
评论