什么是跨不同活动共享Android服务的好方法

时间:2013-12-31 09:46:12

标签: android android-service

如何在应用程序中只生成一个服务,并使其构成活动在它们之间共享?我可以在第一个活动中初始化它,使其成为公共静态,并在其他活动中直接引用它吗?或者我是否需要创建它的单例类,并在每个活动中实例化它?

请帮我找到办法。谢谢

---- -----------更新

说有Activity1,Activity2和Service3

我可以这样做:

public class Activity1 extends Activity{
    public static Service3 mserv; 
    onCreate(){
        bindService(new Intent(this, Service3.class))
    }
    ...
}

public class Activity2 extends Activity{
    public Service3 mservice;

    onCreate(){
        mservice = Activity1.mserv;
    }
    ....
}

public Service3 extends Service{
   onCreate(){
    ....
   }

   onBind(){
    ...
   }
}

2 个答案:

答案 0 :(得分:1)

您可以使用intents与服务对话,了解here

看起来应该是这样的:

  Intent intent = new Intent(context, YourServiceClass.class);
  activity.startService(intent);

您的服务将获得Service.onStartCommand

答案 1 :(得分:0)

您需要通过致电startService()明确启动服务。然后,您可以Bind或通过LocalBroadcastManager与其进行通信。