2013-01-15 31 views
7

Tôi đang thực hiện Analytics trong ứng dụng Android của tôi, và tôi muốn tư vấn về khi gọi super.onPause()Khi nào nên gọi super.onPause()?

if (mAnalyticsSession != null) { 
    mAnalyticsSession.close(); 
    mAnalyticsSession.upload(); 
} 

super.onPause(); 

hiệu ứng gọi super.onPause() sau khi làm những hành động upload vs trước là gì?

Nói chung, khi nào một người nên gọi super.onPause()?

+0

Chào mừng bạn. để SO, đừng quên chọn ac orrect answer :) – m0skit0

+0

Liên quan: https://stackoverflow.com/q/16925579/56285 và https://stackoverflow.com/q/9625920/56285 – Jonik

Trả lời

4

Bạn chỉ gọi super.onPause() trong ghi đè Activity.onPause() của riêng bạn.

public class YourActivity extends Activity { 

    @Override 
    public void onPause() { 
     super.onPause(); 
     // Do your stuff, e.g. save your application state 
    } 

} 

Lưu ý rằng bạn không cần ghi đè điều này nếu bạn không cần. Nếu bạn định ghi đè nó, thì đừng làm quá trình chậm ở đây hoặc bạn có thể nhận được ANR.

+0

Vì vậy, bạn khuyên bạn nên gọi super.onPause() trước và sau đó là các hành động khác? –

+0

Không thực sự quan trọng. – m0skit0

+0

ok. Tôi chỉ là một chút lo ngại về việc đặt chúng trước khi super.onPause() nhưng các hướng dẫn phân tích sdk cho biết nó cần phải được trước khi. –

13

Câu trả lời được lựa chọn là không đúng, (Tôi biết đây là một câu hỏi cũ nhưng đối với độc giả mới đây là cách chính xác: Thêm mã của bạn sau khi Super.onPause hoặc Super.OnStart, ... Và đây là một tài liệu tham khảo Android cho câu hỏi của bạn (liên kết trực tiếp trong bình luận):

Quote from Hoạt động: thực hiện của bạn trong những phương pháp vòng đời phải luôn luôn gọi thực hiện lớp cha trước khi làm bất cứ công việc

+2

Đây là liên kết tới tài liệu: http://developer.android.com/guide/components/activities.html – bkurzius

Các vấn đề liên quan