Interface ReceiveData AsyncTask Android
android
43
Java
77
TIL
593
White

Phạm Quốc Thắng viết ngày 06/05/2016

Cách cũ

class RequestAsync extends AsyncTask<String, JSONArray, String>
{
    Activity activity;
    public RequestAsync(Activity activity)
    {
        this.activity = activity;
    }
    @Override
    protected String doInBackground(String... params) 
    {
        // do your code
    }

    @Override
    protected void onPostExecute(String result)
    {
        Toast.makeText(activity, "Done", Toast.LENGTH_SHORT).show();
        super.onPostExecute(result);
    }

}

Vấn đề

Vấn đề nằm ở việc sử dụng lại class đó, vì phải viết lại class hoặc override method onPostExecute.

Giải pháp

Với 2 giải pháp bên trên thì có vẻ override method onPostExecute khả thi hơn nhưng thực tế các senior lại khuyên nên dùng interface hơn.

Code

interface CallbackReciever {
    public void receiveData(String result);
}
class RequestAsync extends AsyncTask<String, JSONArray, String> implements CallbackReciever
{
    Activity activity;
    public RequestAsync(Activity activity)
    {
        this.activity = activity;
    }
    @Override
    protected String doInBackground(String... params) 
    {
        // do your code
    }

    @Override
    protected void onPostExecute(String result)
    {
        receiveData(result);
        super.onPostExecute(result);
    }
    @Override
    public void receiveData(String result) {}
}

Usage

String data = new RequestAsync(this.getActivity()){
                @Override
                public void receiveData(String result) 
                {
                    Toast.makeText(activity, "Done2", Toast.LENGTH_SHORT).show();
                }
            }.execute("input string").get();

Nhìn có vẻ nguy hiểm hơn :smile:
06-05-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Phạm Quốc Thắng

15 bài viết.
44 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
22 33
Chuẩn bị Một link bài hát / video từ mp3.zing.vn Nghịch ngợm Cũng vì dạo này mình hơi rảnh rỗi với có một chút phiền phức khi đang thưởng thức ...
Phạm Quốc Thắng viết hơn 2 năm trước
22 33
White
10 1
Bài viết này mình sẽ trình bày những thứ cơ bản về cú pháp với Swift. Bài viết sẽ gồm các phần Phần 1 Hằng và Biến Ghi chú Dấu chấm phẩy S...
Phạm Quốc Thắng viết hơn 2 năm trước
10 1
White
7 1
Disclaimer: Mình đã thông báo bug này cho support tenlua.vn 2 lần, và họ đã fix bằng cách upgrade 1 bản api ver 2, tuy nhiên api ver 1 vẫn hoạt độn...
Phạm Quốc Thắng viết hơn 2 năm trước
7 1
Bài viết liên quan
White
0 0
Trong bài viết này, một số hình ảnh hoặc nọi dung có thể bị thiếu do quá trình chế bản. Vui lòng xem nội dung ở blog gốc sau: (Link) (Link), chúng...
programmerit viết gần 3 năm trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
15 bài viết.
44 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!