首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:带参数启动服务

问Android:带参数启动服务
EN

Stack Overflow用户
提问于 2011-03-15 01:08:31
回答 2查看 34.8K关注 0票数 24

要从Activiy启动我的服务,我使用startService(MyService.class)。这很有效,但在特殊情况下,服务应该以不同的方式启动。我想要将一些参数传递给服务启动。

我在我的活动中尝试了以下几种方法:

代码语言:javascript
复制
Intent startMyService= new Intent();
startMyService.setClass(this,LocalService.class);
startMyService.setAction("controller");
startMyService.putExtra(Constants.START_SERVICE_CASE2, true);

startService(startMyService);

在我的服务中,我使用:

代码语言:javascript
复制
public class MyIntentReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

        if (intent.getAction().equals("controller")) 
        {
                // Intent was received                               
        }

    }
} 

IntentReceiver在onCreate()中注册,如下所示:

代码语言:javascript
复制
IntentFilter mControllerIntent = new IntentFilter("controller");
MyIntentReceiver mIntentReceiver= new MyIntentReceiver();
registerReceiver(mIntentReceiver, mControllerIntent);

使用此解决方案,服务将启动,但未收到意图。如何启动服务并传递参数?

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-15 01:12:24

步骤1:删除您的BroadcastReceiver实现。

步骤#2:检查您的服务在onStartCommand()中获得的Intent,并查看通过getAction()执行的操作。

票数 15
EN

Stack Overflow用户

发布于 2013-05-28 20:19:46

代码语言:javascript
复制
Intent serviceIntent = new Intent(this,ListenLocationService.class); 
serviceIntent.putExtra("From", "Main");
startService(serviceIntent);
//and get the parameter in onStart method of your service class

@Override
public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);
    Bundle extras = intent.getExtras();

    if(extras == null) {
        Log.d("Service","null");
    } else {
        Log.d("Service","not null");
        String from = (String) extras.get("From");
        if(from.equalsIgnoreCase("Main"))
            StartListenLocation();
    }
}
票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5301891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档