Trong một trong các hoạt động của tôi, tôi đang sử dụng AsyncTask
. Trong doInBackground()
Tôi đang thực hiện các cuộc gọi đến nhiều phương thức khác nhau. Trong một trong những phương pháp này tôi nhận được một ngoại lệ, vì vậy trong khối catch tôi muốn hiển thị lỗi trong Toast. Tôi biết tôi có thể sử dụng Log
, nhưng tôi vẫn thích Bánh mì nướng. Vì vậy, làm cách nào tôi có thể sử dụng Bánh mì nướng trong AsyncTask trong doInBackground()?Cách hiển thị bánh mì nướng trong AsyncTask tại doInBackground
Trả lời
Bạn có thể gói bánh mì nướng trong runOnUIThread()
nhưng đây không phải là giải pháp tốt nhất.
Bạn nên đặt cờ boolean trong khối catch khi xảy ra lỗi, sau đó hiển thị Bánh mì nướng thích hợp ở onProgressUpdate()
, onPostExecute()
hoặc bất kỳ phương pháp nào khác có quyền truy cập giao diện người dùng bất cứ khi nào cờ là true
.
Tôi cũng không hiểu rằng ... + 1'ed it – Ahmad
@Ahmad Tôi đã trở lại, bởi vì chúng tôi là đúng sau khi tất cả. – Sam
Bối cảnh nào sẽ được chuyển đến bánh mì nướng ** getBaseContext() ** hoặc ** getApplication() ** Bối cảnh? – hrishikesh
Bạn có thể hiển thị nó trong một phương pháp, có quyền truy cập đến thread UI như onPreExecute()
, onProgressUpdate()
và onPostExecute()
trở về từ doInBackground như
protected String doInBackground(String... params){
//some code
try{
//some code
}catch(Exception e){
return "Exception Caught";
}
return someValidResult;
}
protected void onPostExecute(String result){
if(result.equalsIgnoreCase("Exception Caught")){
//Display Toast
}else{
// // whatever you wana do with valid result
}
}
Viết đoạn mã sau, nơi bạn có để hiển thị bánh mì nướng trong doInBackground()
phương pháp
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Example for Toast", Toast.LENGTH_SHORT).show();
}
});
- BTW: nếu bạn đang sử dụng
Fragments
, bạn cần phải gọirunOnUiThread(...)
thông qua hoạt động của bạn: Phương pháp
getActivity().runOnUiThread(...)
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Example for Toast", Toast.LENGTH_SHORT).show();
}
});
đang làm việc hoàn toàn tốt đẹp để hiển thị bánh mì nướng trong doInBackground()
Tạo xử lý đối tượng và thực hiện tất cả các tin nhắn bánh mì nướng của bạn bằng cách sử dụng đó.
@Override
protected Void doInBackground(Void... params) {
Handler handler=new handler();
handler= new Handler(context.getMainLooper());
handler.post(new Runnable(){
public void run(){
Toast.makeText(context, "Created a server socket",Toast.LENGTH_LONG).show();
}
});
}
activity.runOnUiThread(new Runnable() {
public void run()
{
Toast.makeText(activity, "Toast teaxt", Toast.LENGTH_SHORT).show();
}
});
thử mã này
void showError(final String err) {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(downloadprogress.this, err + "error in download", Toast.LENGTH_LONG)
.show();
}
});
}
- 1. lỗi khi hiển thị bánh mì nướng
- 2. Hiển thị bánh mì nướng phức tạp từ BroadcastReceiver
- 3. Phát hiện tin nhắn bánh mì nướng
- 4. Android Rung trên bánh mì nướng (Homer: Mmmm rung trên bánh mì nướng)
- 5. Android: Thông báo bánh mì nướng tùy chỉnh Thừa kế bánh mì nướng mặc định
- 6. Làm cách nào để hiển thị bánh mì nướng trong một khoảng thời gian cụ thể?
- 7. Thay đổi Phông chữ Bánh mì nướng
- 8. Android: Bánh mì nướng trong một chủ đề
- 9. Cách hiển thị thông báo bánh mì nướng từ chủ đề nền
- 10. Văn bản trung tâm trong bánh mì nướng trong Android
- 11. Thêm hình ảnh vào Bánh mì nướng?
- 12. Bắt sự kiện bánh mì nướng (từ bất kỳ ứng dụng nào) và nhận tin nhắn bánh mì nướng
- 13. Cách tùy chỉnh bánh mì nướng trong Android
- 14. Bánh mì nướng không hiển thị khi được sử dụng trong khối đánh bắt
- 15. Android: Hiển thị bánh mì nướng sau khi hoàn thành ứng dụng/hoạt động
- 16. Đặt Bánh mì nướng Xuất hiện Chiều dài
- 17. WP7: Làm thế nào để hiển thị một bánh mì nướng?
- 18. Bánh mì nướng Android bắt đầu từ Dịch vụ chỉ hiển thị khi
- 19. Cách đặt kiểu bánh mì nướng làm chủ đề?
- 20. Android giống như bánh mì nướng trong Swing
- 21. Kích thước bánh mì nướng trên Galaxy Nexus
- 22. Bánh mì nướng Android sẽ không biến mất
- 23. Thông báo bánh mì nướng của Android quá nhỏ trong Bánh kem Sandwich
- 24. Tạo thông báo "bánh mì nướng" như StackOverflow
- 25. Thời lượng của Bánh mì nướng LENGTH_LONG và LENGTH_SHORT
- 26. Cách tốt nhất để tránh tích lũy bánh mì nướng trong Android
- 27. Khung bánh mì trong suốt
- 28. Làm thế nào để hiển thị Bánh mì nướng trong một lớp được mở rộng bởi BaseAdapter Get View Method
- 29. Làm thế nào để thay đổi vị trí của bánh mì nướng trong Android?
- 30. Android: Có cách nào tốt để tạo hộp thoại giống như bánh mì nướng không?
tại sao bạn không retuning lỗi để onPostExecute từ doInBackground() và sau đó nên lỗi này trong một bánh mì nướng từ onPostExecute –
bạn không thể sửa đổi giao diện người dùng từ phương thức doInBackground(), cố gắng trả lại một số kết quả, và kiểm tra kết quả đó trong phương thức onPostExecute(), nếu đúng như vậy, hãy hiển thị Toast – Houcine
@Sam: easy man !! tôi đã không bình chọn, tôi vừa thêm bình luận của tôi, tôi biết rằng bạn có thể cho phép truy cập trong 'doInBackground()', nhưng không nên làm điều đó, nếu có, thì tại sao có phương thức 'onProgressUpdate () 'và' onPostExecute() '?? – Houcine