如何找到Android服务的创建地点?

时间:2015-03-17 15:25:33

标签: android

我想知道如何找到Android服务的创建地点?例如,我有两个不同的活动并创建一些按钮。当用户单击按钮时,它将启动该服务。但是,如何检查该服务是否是从我期望的活动中创建的?

服务类:

public class BluetoothService extends Service {
   ...
}

活动类:

public class SettingsActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
   }

   /** This is a button */
   public void createBluetoothService(View view) {
      Intent in = new Intent(this, BluetoothService.class);
      startService(in);
   }

}

感谢您的帮助。

如果问题没有解决,请告诉我。

1 个答案:

答案 0 :(得分:0)

根据@KonradKrakowiak的建议,我只是在回答自己的问题。希望这会有助于其他人。

活动类:

public class SettingsActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
  }

  /** This is a button */
  public void createBluetoothService(View view) {
     Intent in = new Intent(this, BluetoothService.class);
     in.putExtra("class", "SettingsActivity");
     startService(in);
  }

}

服务类:

public class BluetoothService extends Service {

   ...

   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {

      Bundle bundle = intent.getExtras();
      String check = bundle.getString("class");

      if (check.equals("SettingsActivity")) {
         // do something
      }

      return START_STICKY;
   }

}

这对我来说似乎很有用。感谢您的提示。