Atasi Error BinderProxy is not valid; is your activity running?

Hal ini kemungkinan besar terjadi karena Anda mencoba menampilkan dialog setelah eksekusi thread latar belakang, saat Aktivitas sedang dimusnahkan.

Saya melihat kesalahan ini dilaporkan sesekali dari beberapa aplikasi saya ketika aktivitas yang memanggil dialog selesai karena beberapa alasan atau lainnya ketika mencoba menampilkan dialog. Inilah yang menyelesaikannya untuk saya:

if(!((Activity) context).isFinishing())
{
    //show dialog
}

Saya telah menggunakan ini untuk mengatasi masalah pada versi Android yang lebih lama selama beberapa tahun, dan belum pernah melihat kerusakan lagi sejak saat itu.

Pembaruan 2021

Telah dicatat dalam beberapa komentar bahwa melemparkan secara membabi buta Contextke Activity. Saya setuju!

Saat saya menulis kode serupa hari ini dalam Fragment(8+ tahun setelah jawaban asli diberikan), saya melakukannya lebih seperti ini:

if (!requireActivity().isFinishing) {
     // show dialog
}

Kesimpulan utamanya adalah mencoba menampilkan dialog atau memperbarui UI apa pun setelah hosting Activitydimatikan akan mengakibatkan crash. Lakukan apa yang Anda bisa untuk mencegahnya dengan mematikan thread latar belakang saat Aktivitas Anda dimatikan, atau setidaknya, gunakan jawaban di sini untuk menghentikan aplikasi Anda agar tidak mogok.

Post a Comment

Previous Next

نموذج الاتصال