Javaを使い慣れていないため、サービスを使用してボタンを押したときにテキストを表示する簡単なプログラムを作成しようとしていました。何らかの理由で、「Start Service」と「Stop Service」ボタンを押しても何も起こりません。ここに私のコードボタンを押すとサービスが開始され、テキストが表示されるはずですが、ボタンをクリックすると何も起こりません。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void startService(View view) {
startService(new Intent(getBaseContext(), MyService.class));
}
public void stopService(View view) {
stopService(new Intent(getBaseContext(), MyService.class));
}
public static class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
}
}
そして、私はそれが働いていなかった理由ですフラグメントを使用していた
<Button
android:id="@+id/button"
android:layout_width="132dp"
android:layout_height="105dp"
android:layout_marginTop="8dp"
android:onClick="startService"
android:text="@string/Buttton1"
android:visibility="visible"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button2"
android:layout_width="128dp"
android:layout_height="108dp"
android:layout_marginTop="8dp"
android:onClick="stopService"
android:text="@string/Button2"
android:visibility="visible"
app:layout_constraintHorizontal_bias="0.503"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
なぜあなたはそれを行うコードを使ってみませんか? –
あなたのアプリでフラグメントを使用していますか? – Nenco
'getBaseContext()'を 'this'に置き換えるのはどうでしょうか?これは' Activity'かどうか分かりません。ただ試してみましょう;-)あなたのマニフェストにサービスを登録しましたか? – deHaar