現在、以下を使用してアクティビティのonCreateメソッド内で開始されるサービスがあります。
Intent intentService = new Intent(this, MainService.class);
this.startService(intentService);
ボタンを押すとこのサービスを停止し、別のボタンを押すとサービスを再開できるようにする必要がありますが、このサービスを停止してonCreateメソッドの外部で再開する方法がわかりません。
現在行っている方法とは異なる方法でサービスを開始する必要があると思いますか?しかし、私はこれのための最良の方法がわかりません。
Androidでサービスを停止 を見ましたが、サービスを開始する方法がonCreate内で機能しないようです。
私のコードのより完全な概要:
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lock = (Button) this.findViewById(R.id.lock);
unlock = (Button) this.findViewById(R.id.unlock);
lock.setOnClickListener(btn_lock);
unlock.setOnClickListener(btn_unlock);
unlock.setVisibility(View.VISIBLE);
lock.setVisibility(View.GONE);
Intent intentService = new Intent(this, MainService.class);
this.startService(intentService);
}
private OnClickListener btn_lock = new OnClickListener() {
public void onClick(View v) {
unlock.setVisibility(View.VISIBLE);
lock.setVisibility(View.GONE);
}
};
private OnClickListener btn_unlock = new OnClickListener() {
public void onClick(View v) {
unlock.setVisibility(View.GONE);
lock.setVisibility(View.VISIBLE);
}
};
サービスを開始したいときはいつでも必要なのは
startService(new Intent(this, MainService.class));
そして、いつでもサービスを停止するには、
stopService(new Intent(this, MainService.class));
サービスはAndroidManifest.xmlで宣言する必要があることに注意してください。あなたが言ったようにあなたのサービスは機能しています。あなたはそれをしたと確信しています。それでもAndroidManifest.xml
<service Android:enabled="true" Android:name=".MainService" />