Bu beni bir süredir deli ediyor.
Android uygulamasında ana sayfa düğmesine basılıp basılmadığını güvenilir bir şekilde tespit etmenin herhangi bir yolu var mı?
Başarısız olursa, bir etkinliğin Duraklatmaya girmesine neyin sebep olduğunu söylemenin sağlam bir yolu var mı? Örneğin, yeni bir etkinliğin başlatılmasından mı yoksa geri / eve düğmesine basarak mı oluştuğunu tespit edebilir miyiz?
Gördüğüm bir öneri, onPause () 'u geçersiz kılmak ve isFinishing ()' yi çağırmaktı, ancak bu, ana düğmeye basıldığında, tıpkı yeni bir faaliyetin başlaması durumunda olduğu gibi, bu ikisini ayırt etmekte başarısız olacaktır.
Herhangi bir yardım çok takdir edilir.
** Güncelleme **: Bu bağlantı için @ android-aç'a teşekkürler: https://nishandroid.blogspot.com/
Aşağıdaki yöntemi geçersiz kılmak:
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
Ardından, ana sayfa düğmesine basıldığında aşağıdaki olay TUTUŞTURULACAKTIR:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
//The Code Want to Perform.
}
});
Bu satırın herhangi bir yan etkisi olup olmadığından emin değilim:
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
Görünüşe göre popüler inancın aksine, aslında ev anahtarını dinleyebilirsiniz. Endişe verici bir şekilde, yanlış dönebilir ve ana anahtarın hiçbir şey yapmamasını sağlayabilirsiniz.
Güncelleme : Beklendiği gibi, bunun bazı yan etkileri vardır - bu mod etkinleştirildiğinde gömülü videoların ve Google haritalarının görünmediği görülüyor.
Güncelleme : Sözde bu hack artık Android 4.0'dan itibaren çalışmıyor
Activity.onUserLeaveHint()
.