【问题标题】:Can start 2 services from the same activity and can run that activity and two services parrallely in android?可以从同一个活动启动 2 个服务,并且可以在 android 中并行运行该活动和两个服务吗?
【发布时间】:2012-06-11 14:47:15
【问题描述】:

我有 2 项服务可从加速度计和麦克风获取数据,还有 1 项活动可获取 GPS 数据。我想同时运行这三件事。我想知道这在Android中是否可行。当 GPS Activity 运行并在 UI 上显示数据时,其他 2 个服务也应该在后台运行。

如果可能的话,我给出的从 GPS Activity 类启动两项服务并同时运行这 3 项服务的方法是正确的。请任何人帮助我。谢谢。

`

    @Override
   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    gpsManager = new GPSManager();

    gpsManager.startListening(getApplicationContext());
    gpsManager.setGPSCallback(this);

    ((TextView)findViewById(R.id.info_message)).setText(getString(R.string.info));

    measurement_index = AppSettings.getMeasureUnit(this);
    Intent i=getIntent();
     number=i.getStringExtra("NUMBER");
     startService(new Intent(GPS2Activity.this, GforceService.class));
     startService(new Intent(GPS2Activity.this,SPLService.class));



} `

GforceServiceSPLService 是我的 2 项服务

【问题讨论】:

  • 是的,您可以启动 2 个服务并让它们与您的活动并行运行。您是否遇到了一些问题?
  • 太棒了!我想知道我给的方式是否正确,因为我没有处理服务的经验。
  • 好的,我为你创建了一个答案。如果这是您想知道的全部内容,您可以接受这个答案。
  • 如果您的平台是 5.0.0 或 5.0.0+,您的代码可以工作否则您必须使用接收器。
  • @devdattbhatt 你的评论是错误的。此代码适用于所有版本的 Android。您可以根据需要启动任意数量的服务,并且它们都并行运行。是什么让您认为这不适用于较旧的 Android 版本?

标签: android service android-activity


【解决方案1】:

是的,您可以启动 2 个服务并让它们与您的活动并行运行。

【讨论】:

  • 一个新问题 :),我可以在服务中使用 AsyncTask 并让 AsyncTask 并行运行吗,我问的原因是因为我注意到 AsyncTask 不能在 android 4 中并行运行。
  • @user1796624 您可能应该为此发布一个新问题。但是AsyncTask 用于从 UI 运行后台活动。由于Service 没有用户界面,因此将AsyncTaskService 混合使用是没有意义的。如果你想要并行操作,你可以使用Thread 和可选的线程池。
  • 运行两个服务会不好还是内存效率低?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多