2013-08-15 39 views
7

Tại sao android.app.Activity không trừu tượng theo thiết kế nếu tài liệu/hướng dẫn nói rằng ít nhất phương pháp của nó onCreate()phải được triển khai.Tại sao android.app.Activity không trừu tượng theo thiết kế?

Từ http://developer.android.com/guide/components/activities.html

Bạn phải thực hiện phương pháp này. Hệ thống gọi điều này khi tạo hoạt động của bạn.

Thậm chí nếu nó không được đề cập một cách rõ ràng, không có sự triển khai thì không có điểm nào trong việc có đối tượng android.app.Activity hay không? Tôi hiểu rằng nhu cầu cần thiết để thực thi mã trong việc thực hiện riêng của onCreate() nhưng chắc chắn có thể được thiết kế khi một phần của phụ huynh onCreate() sẽ là một cuộc gọi đến một phương pháp gọi lại trừu tượng cần được thực hiện bởi nhà phát triển.

Ví dụ về thiết kế này:

public abstract class Activity { 


    public abstract void implementThis(Object o); 

    public void onCreate(Object o){ 
     //Do stuff 
     implementThis(o); 
     //Do other stuff or end. 
    } 

} 

Tôi có thiếu cái gì ở đây? Tại sao không trừu tượng Activity nếu nhà phát triển phảicần để phân lớp và cung cấp triển khai tùy chỉnh?

Trả lời

3

Tại sao android.app.Activity không trừu tượng theo thiết kế nếu tài liệu/hướng dẫn nói rằng ít nhất phương thức onCreate() PHẢI được triển khai.

Ngừng tài liệu để phản đối quá nhiều. Bạn không để triển khai onCreate(). Bạn có thể nói điều này bằng cách tạo một hoạt động mà không cần onCreate() và chạy nó.

mà không thực hiện không có điểm nào trong việc có đối tượng android.app.Activity hoặc?

Bạn được chào đón để cẩn thận thiết lập giao diện người dùng của bạn ở một nơi khác (ví dụ, onResume()). Thông thường, bạn làm như vậy trong onCreate().

Tôi hiểu rằng nhu cầu cần thiết có thể thực thi mã khi triển khai onCreate() nhưng chắc chắn có thể thiết kế khi một phần của parent onCreate() sẽ gọi đến phương thức gọi lại trừu tượng cần được thực hiện bởi nhà phát triển.

chắc. Họ đã chọn không làm theo cách đó.

0

Thực hiện hoạt động của bạn được thiết lập trong onCreate nhưng không bắt buộc. Nói rằng tôi không quan tâm đến vòng đời hoạt động của mình, tôi có thể thiết lập mọi thứ trong onResume và xé nó xuống theo số .Cung cấp một phương thức trừu tượng có tên là từ onCreate là hạn chế hơn bất cứ thứ gì.

Lưu ý: Tôi không đề xuất rằng bất kỳ ai làm điều này - chỉ rằng bạn có thể nếu bạn thực sự muốn.

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