diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/alertdialog/AlertDialogActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/alertdialog/AlertDialogActivity.java index f9522ce8..462a29dc 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/alertdialog/AlertDialogActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/alertdialog/AlertDialogActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -13,7 +14,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class AlertDialogActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityAlertDialogBinding binding; @Override @@ -45,4 +46,11 @@ private MaterialAlertDialogBuilder createAlertDialog() { .setPositiveButton(android.R.string.ok, null) .setNegativeButton(android.R.string.cancel, null); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/snackbar/SnackBarActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/snackbar/SnackBarActivity.java index 6698ad48..a91de999 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/snackbar/SnackBarActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/snackbar/SnackBarActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -13,7 +14,7 @@ import com.google.android.material.snackbar.Snackbar; public class SnackBarActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivitySnackBarBinding binding; @Override @@ -39,4 +40,11 @@ protected void onCreate(Bundle savedInstanceState) { handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/toast/ToastActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/toast/ToastActivity.java index 74e79479..2f873302 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/toast/ToastActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/toast/ToastActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.widget.Toast; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -13,7 +14,7 @@ import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; public class ToastActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityToastBinding binding; @Override @@ -37,4 +38,11 @@ protected void onCreate(Bundle savedInstanceState) { handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/ButtonsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/ButtonsActivity.java index e326bbbc..6759f024 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/ButtonsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/ButtonsActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -14,7 +15,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class ButtonsActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityButtonsBinding binding; @Override @@ -48,4 +49,11 @@ protected void onCreate(Bundle savedInstanceState) { binding.floatingButtonShowSyntax.setOnClickListener(v -> startActivity(new Intent(ButtonsActivity.this, ButtonsCodeActivity.class))); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/image/ImageButtonsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/image/ImageButtonsActivity.java index e78cdd53..20a179f3 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/image/ImageButtonsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/image/ImageButtonsActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -13,7 +14,7 @@ import com.google.android.material.snackbar.Snackbar; public class ImageButtonsActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityImageButtonsBinding binding; @Override @@ -37,4 +38,11 @@ protected void onCreate(Bundle savedInstanceState) { handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/radio/RadioButtonsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/radio/RadioButtonsActivity.java index a03c720f..63dc0565 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/radio/RadioButtonsActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/radio/RadioButtonsActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.widget.RadioButton; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -13,7 +14,7 @@ import com.google.android.material.snackbar.Snackbar; public class RadioButtonsActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityRadioButtonsBinding binding; @Override @@ -38,4 +39,11 @@ protected void onCreate(Bundle savedInstanceState) { handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/switches/SwitchActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/switches/SwitchActivity.java index f2941539..a719a906 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/switches/SwitchActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/switches/SwitchActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -15,7 +16,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class SwitchActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivitySwitchBinding binding; @Override @@ -43,4 +44,11 @@ private void setOnClickListeners() { }); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/chronometer/ChronometerActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/chronometer/ChronometerActivity.java index 57dd6378..b4ffbd4a 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/chronometer/ChronometerActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/chronometer/ChronometerActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.os.SystemClock; import androidx.annotation.Nullable; @@ -13,7 +14,7 @@ import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; public class ChronometerActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityChronometerBinding binding; @Override @@ -36,4 +37,11 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { binding.buttonStop.setOnClickListener(v -> binding.chronometer.stop()); binding.buttonReset.setOnClickListener(v -> binding.chronometer.setBase(SystemClock.elapsedRealtime())); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/ClockActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/ClockActivity.java index 0a3dd021..cec21ab3 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/ClockActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/ClockActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -12,7 +13,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class ClockActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityClockBinding binding; @Override @@ -29,4 +30,11 @@ protected void onCreate(Bundle savedInstanceState) { binding.floatingButtonShowSyntax.setOnClickListener(view -> startActivity(new Intent(this, ClockCodeActivity.class))); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/datepicker/DatePickerActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/datepicker/DatePickerActivity.java index f6181f47..7331b519 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/datepicker/DatePickerActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/datepicker/DatePickerActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -16,7 +17,7 @@ import java.util.Locale; public class DatePickerActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private final Calendar calendar = Calendar.getInstance(); private final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault()); private ActivityDatePickerBinding binding; @@ -54,4 +55,11 @@ protected void onCreate(Bundle savedInstanceState) { private void updateDateInView() { binding.dateTextView.setText(dateFormat.format(calendar.getTime())); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/timepicker/TimePickerActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/timepicker/TimePickerActivity.java index 51aea3fd..a4d8cd04 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/timepicker/TimePickerActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/timepicker/TimePickerActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -16,7 +17,7 @@ import java.util.Locale; public class TimePickerActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private final Calendar calendar = Calendar.getInstance(); private ActivityTimePickerBinding binding; @@ -56,4 +57,11 @@ private void updateTimeInView() { SimpleDateFormat sdf = new SimpleDateFormat(timeFormat, Locale.getDefault()); binding.timeTextView.setText(sdf.format(calendar.getTime())); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/RoomActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/RoomActivity.java index 3d567c35..e0220c52 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/RoomActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/RoomActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -26,7 +27,7 @@ * Demonstrates basic Room usage by inserting and reading notes. */ public class RoomActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityRoomBinding binding; private NotesAdapter adapter; private AppDatabase db; @@ -82,6 +83,7 @@ private void loadNotes() { protected void onDestroy() { super.onDestroy(); executor.shutdown(); + handler.removeCallbacksAndMessages(null); } private static class NotesAdapter extends RecyclerView.Adapter { @@ -119,4 +121,5 @@ static class NoteViewHolder extends RecyclerView.ViewHolder { } } } + } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/LinearLayoutActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/LinearLayoutActivity.java index 590eb3fd..7b0bf6f9 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/LinearLayoutActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/LinearLayoutActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -12,7 +13,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class LinearLayoutActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityLinearLayoutBinding binding; @Override @@ -28,4 +29,11 @@ protected void onCreate(Bundle savedInstanceState) { binding.floatingButtonShowSyntax.setOnClickListener(v -> startActivity(new Intent(LinearLayoutActivity.this, LinearLayoutCodeActivity.class))); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/RelativeLayoutActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/RelativeLayoutActivity.java index 061e1e1a..775a11e3 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/RelativeLayoutActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/RelativeLayoutActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -12,7 +13,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class RelativeLayoutActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityRelativeLayoutBinding binding; @Override @@ -29,4 +30,11 @@ protected void onCreate(Bundle savedInstanceState) { binding.floatingButtonShowSyntax.setOnClickListener(v -> startActivity(new Intent(RelativeLayoutActivity.this, RelativeLayoutCodeActivity.class))); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/TableLayoutActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/TableLayoutActivity.java index eb8bcb9b..9dc44c4d 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/TableLayoutActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/TableLayoutActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -12,7 +13,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class TableLayoutActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityTableLayoutBinding binding; @Override @@ -28,4 +29,11 @@ protected void onCreate(Bundle savedInstanceState) { binding.floatingButtonShowSyntax.setOnClickListener(v -> startActivity(new Intent(TableLayoutActivity.this, TableLayoutCodeActivity.class))); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/bottomnavigation/BottomNavigationActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/bottomnavigation/BottomNavigationActivity.java index 16cb6492..f1c18503 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/bottomnavigation/BottomNavigationActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/bottomnavigation/BottomNavigationActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import com.d4rk.androidtutorials.java.R; @@ -12,7 +13,7 @@ import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; public class BottomNavigationActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityBottomNavigationBinding binding; @Override @@ -36,4 +37,11 @@ protected void onCreate(Bundle savedInstanceState) { }); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/drawer/NavigationDrawerActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/drawer/NavigationDrawerActivity.java index 77b23e37..1b2c514a 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/drawer/NavigationDrawerActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/navigation/drawer/NavigationDrawerActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; import androidx.core.view.GravityCompat; @@ -13,7 +14,7 @@ import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate; public class NavigationDrawerActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityNavigationDrawerBinding binding; @Override @@ -39,4 +40,11 @@ protected void onCreate(Bundle savedInstanceState) { handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/inbox/InboxNotificationActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/inbox/InboxNotificationActivity.java index 6908abad..74805af8 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/inbox/InboxNotificationActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/inbox/InboxNotificationActivity.java @@ -8,6 +8,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import androidx.annotation.RequiresApi; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -20,7 +21,7 @@ public class InboxNotificationActivity extends UpNavigationActivity { private final String notificationChannelId = "inbox_notification"; private final int notificationId = 1; - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityNotificationBinding binding; @RequiresApi(api = Build.VERSION_CODES.O) @@ -55,4 +56,11 @@ protected void onCreate(Bundle savedInstanceState) { }); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/simple/SimpleNotificationActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/simple/SimpleNotificationActivity.java index 55158085..18dcebcd 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/simple/SimpleNotificationActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/notifications/simple/SimpleNotificationActivity.java @@ -8,6 +8,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import androidx.annotation.RequiresApi; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -20,7 +21,7 @@ public class SimpleNotificationActivity extends UpNavigationActivity { private final String simpleChannelId = "simple_notification"; private final int simpleNotificationId = 1; - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityNotificationBinding binding; @RequiresApi(api = Build.VERSION_CODES.O) @@ -50,4 +51,11 @@ protected void onCreate(Bundle savedInstanceState) { }); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/ProgressBarActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/ProgressBarActivity.java index 8371da73..dcd274df 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/ProgressBarActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/ProgressBarActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -12,7 +13,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class ProgressBarActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityProgressBarBinding binding; @Override @@ -48,4 +49,11 @@ public void run() { startActivity(new Intent(this, ProgressBarCodeActivity.class))); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/reviews/ratingbar/RatingBarActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/reviews/ratingbar/RatingBarActivity.java index 4cf1ff47..bedf8d46 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/reviews/ratingbar/RatingBarActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/reviews/ratingbar/RatingBarActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.widget.Toast; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -12,7 +13,7 @@ import com.d4rk.androidtutorials.java.ui.screens.android.CodeActivity; public class RatingBarActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityRatingBarBinding binding; private float rating = 0f; private String formattedString; @@ -46,4 +47,11 @@ private void showRatingToast() { formattedString = String.format(getString(R.string.snack_rating), rating); Toast.makeText(this, formattedString, Toast.LENGTH_SHORT).show(); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java index 64f340d0..2ce33b80 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; @@ -15,7 +16,7 @@ import com.google.android.material.snackbar.Snackbar; public class PasswordBoxActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityPasswordBoxBinding binding; @Override @@ -64,4 +65,11 @@ private void addKeyListener() { binding.buttonShowPassword.setOnClickListener(v -> Snackbar.make(binding.getRoot(), binding.editText.getText(), Snackbar.LENGTH_LONG).show()); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/textbox/TextboxActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/textbox/TextboxActivity.java index 150ee052..2609fdd6 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/textbox/TextboxActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/textbox/TextboxActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -11,7 +12,7 @@ import com.google.android.material.snackbar.Snackbar; public class TextboxActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityTextBoxBinding binding; @Override @@ -40,4 +41,11 @@ private void addKeyListener() { } }); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/grid/GirdViewActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/grid/GirdViewActivity.java index a6007aca..3c8d4563 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/grid/GirdViewActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/grid/GirdViewActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.widget.ArrayAdapter; import android.widget.TextView; import android.widget.Toast; @@ -16,7 +17,7 @@ public class GirdViewActivity extends UpNavigationActivity { private final String[] numbers = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityGridViewBinding binding; @Override @@ -41,4 +42,11 @@ protected void onCreate(Bundle savedInstanceState) { }); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/ImagesActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/ImagesActivity.java index 6a4f7138..26b6bfba 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/ImagesActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/ImagesActivity.java @@ -3,6 +3,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity; @@ -12,7 +13,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class ImagesActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityImagesBinding binding; @Override @@ -28,4 +29,11 @@ protected void onCreate(Bundle savedInstanceState) { binding.floatingButtonShowSyntax.setOnClickListener(v -> startActivity(new Intent(ImagesActivity.this, ImagesCodeActivity.class))); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +} diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/web/WebViewActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/web/WebViewActivity.java index 62727319..7575653a 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/web/WebViewActivity.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/web/WebViewActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; +import android.os.Looper; import android.webkit.WebSettings; import android.webkit.WebView; @@ -16,7 +17,7 @@ import me.zhanghai.android.fastscroll.FastScrollerBuilder; public class WebViewActivity extends UpNavigationActivity { - private final Handler handler = new Handler(); + private final Handler handler = new Handler(Looper.getMainLooper()); private ActivityWebviewBinding binding; @Override @@ -51,4 +52,11 @@ private void setupFloatingButton() { }); handler.postDelayed(() -> binding.floatingButtonShowSyntax.shrink(), 5000); } -} \ No newline at end of file + + + @Override + protected void onDestroy() { + super.onDestroy(); + handler.removeCallbacksAndMessages(null); + } +}