Bir geri düğmesine basıldığında bir iş parçacığı durdurmak istiyorum.
Handler
kullanıyorum.android thread hala geri düğmesine basıldıktan sonra çalışıyor
cevap
Handler
'un removeCallbacks()
işlevini kullanmanız gerekir.
örnek kod:
@Override
public boolean onBackPress(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
handler.removeCallbacks(yourRunnable);
return true;
}
return super.onKeyDown(keyCode, event);
}
stop
veya destroy
yöntemlerini kullanamazsınız. onStop
yönteminde this kullanmanız gerekir.
Oluşturduğunuzda iş parçacığına bir başvuru yapın. Etkinliğinizde , referans iş parçacığını duraklatın veya öldürün.
@Override \t public void onBackPressed() { \t \t handler.removeCallbacks teşekkür durdurabilir veya senin için oylama kadar .. bir kine yol göstermek için .. teşekkürler iplik ve yöntemi yok olamaz r1); \t \t super.onBackPressed(); \t} o tamam mı ?? – Siten
Bu doğru değil. Handler öğesinden 'removeCallback() işlevini kullanın. Cevabımı aşağıya bakın. – Wroclai
Sen aktivitesinde onBackPressed()
işlevini geçersiz kılarak geri düğmesi basın bir eylem atayabilirsiniz. Bu eylemin iş parçacığını durdurmak için bir komutu olmalıdır. Aşağıdaki gibi görünecektir.
İşleyiciyi ... ve thread.stop() veya işleyiciyi kullandım.durdurmak(); Geri tepme – Siten
içinde görünmez, iş parçacığına bir ad verdiniz ve onBackPressed'de kullandınız mı? –
İş parçacığı daha kolay ve daha hızlı bir şekilde durdurmak için bir demo.
Button back = (Button)findViewById(R.id.back);
back.setText("Back");
back.setOnClickListener(this);
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
if(msg.obj.toString().contentEquals("hello"))
{
// do whatever u what to perform after thread stop....
}
removeDialog(0);
}
};
@Override
public void onClick(View v)
{
if(v==back)
{
showDialog(0);
t=new Thread()
{
public void run()
{
Message toMain = handler.obtainMessage();
toMain.obj = "hello";
handler.sendMessage(toMain);
}
};
t.start();
}
}
@Override
protected Dialog onCreateDialog(int id)
{
switch (id)
{
case 0:
{
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Connecting . . . . . .");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
return dialog;
}
}
return null;
}
İş parçacığını oluşturmak veya durdurmak için bu yöntemi kullanın. Umarım daha az zaman alır.
İşleyici kullanıyorsanız, geri bildirimleri handler.removeCallbacks (runnable); Bu, mükemmel çalışmalıdır. Mutlu Kodlama :)
- 1. Neden etkinlik düğmesine geri basıldıktan sonra uygulama kapalı?
- 2. Javascript, mobil safari'de geri düğmesine basıldıktan sonra iframe'de çalışmayı durdurur
- 3. Liste görünümü: Geri düğmesine basıldıktan sonra vurgulanmak/seçili olarak kalmak nasıl?
- 4. MainActivity (Geri) düğmesine basarak geri ve geri düğmesine basın.
- 5. Python: iş parçacığı hala çalışıyor
- 6. android thread management onPause
- 7. Tut İşte geri düğmesine
- 8. Git basıldıktan sonra bash betiği nasıl çalıştırılır
- 9. Tuşa basıldıktan sonra imlecin Tarayıcıda gizlenmesini engelle
- 10. Android: Geri düğmesine basıldığında, kullanıcının değişiklikleri kaydetmesini isteme
- 11. IE'de geri düğmesine basıp basmadım?
- 12. Önceden yapılandırılmış ChromeDriver hizmeti hala çalışıyor/Grunt
- 13. onEditorAction(), Enter tuşuna basıldıktan sonra, Jelly Bean emülatörü
- 14. JQuery'de geri düğmesine basıldığında nasıl uyarı verilir?
- 15. Xamarin iOS: görünüm çubuğuna basıldıktan sonra gezinti çubuğu gösterilmiyor
- 16. Bu kod kısmı neden hala çalışıyor?
- 17. libz.dylib dosyasını eklemediniz. Hala nasıl çalışıyor?
- 18. Twitter hala Rails üzerinde çalışıyor mu?
- 19. NotifyDataSetChanged() thread thread
- 20. Teytere'de bir düğmeye basıldıktan sonra Giriş widget'ı nasıl temizlenir?
- 21. Telefonda geri düğmesine basın Kapat bootstrap modal
- 22. Kaydetme sekmesi Geri düğmesine basıldığında çıkış konumu
- 23. UINavigationItem'in geri düğmesine uzun süreli basın algılaması
- 24. Android, NumericUpDown Düğmesine sahip mi?
- 25. Android uygulaması arka planda çalışıyor mu?
- 26. Thread, android 4.0.3 sürümünde hata döndürüyor
- 27. Android geri düğmesi davranışı
- 28. UISearchController, iptal düğmesine bastıktan sonra VC'yi kapatır
- 29. rayları sorgu önbelleğe alındıktan sonra hala çalışır
- 30. Testler başarılı oluyor, hala geri dönüyor
@Viktor kodunuzu bt çalışmıyor, hala iş parçacığı çalışıyor ... – Siten
@siten: İş parçanızın hala çalışıp çalışmadığını nasıl belirleyebiliyorsunuz? – Wroclai
CATlog, – Siten