【问题标题】:What is a good way to share an android service across different activities什么是跨不同活动共享android服务的好方法
【发布时间】:2013-12-31 09:46:11
【问题描述】:

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

请帮我找到一种方法来做到这一点。谢谢

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

假设有 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(){
    ...
   }
}

【问题讨论】:

  • 你有什么要求分享一些想法,

标签: android android-service


【解决方案1】:

您可以使用intents 与服务对话,阅读它here

它应该看起来像这样:

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

您的服务将获得Service.onStartCommand

【讨论】:

    【解决方案2】:

    您需要通过调用startService() 显式启动您的服务。然后您可以Bind 与它联系,也可以通过LocalBroadcastManager 与它交流。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      相关资源
      最近更新 更多