Androidでサービスを再起動してサービスのoncreateを再度呼び出す方法
OnCreateメソッドを再度呼び出すにはサービスの再起動が必要で、以下の手順で実行できます。
- サービス内でサービスを再開するためのメソッドを作成します。このメソッドは、アクティビティのボタンクリックイベントなど、他の場所から呼び出すことができます。
public class MyService extends Service {
// ...
public void restartService() {
stopSelf(); // 停止当前服务
Intent intent = new Intent(this, MyService.class);
startService(intent); // 启动服务
}
// ...
}
- アクティビティ内でサービスの restartService メソッドを呼び出します。
public class MainActivity extends AppCompatActivity {
// ...
private void restartService() {
MyService myService = new MyService();
myService.restartService();
}
// ...
}
その際、restartServiceメソッド呼び出しでサービスは停止後再起動されるため、onCreateメソッドが呼ばれます。なお、すでにサービスへバインドしている場合は、停止する前にアンバインドする必要があります。