30/09/2018, 17:57

Về Context trong android

Cho mình hỏi Context trong android nghĩa là gì và công dụng ra sao? Do vốn từ tiếng Anh hạn hẹp không thể hiểu hết những gì mà mình đọc trên Stackoverflow

TTmagic viết 20:12 ngày 30/09/2018

Mình tìm được:

  • Context thuộc android.content (android.content.Context).
  • Là một lớp cơ bản chứa hầu hết thông tin về môi trường ứng dụng của android, có nghĩa là mọi thao tác, tương tác với hệ điều hành điều phải qua lớp này.
  • Nó cung cấp cho những lớp khác các phương thức để tương tác với hệ thống Android.
  • Nó cho phép truy cập tới các nguồn tài nguyên (resources) đã được định nghĩa và các lớp khác. Ví dụ như nó có thể khởi tạo và chạy các activities, các broadcast và các intents,… Chúng ta coi như Context là một lớp ở mức ứng dụng (Application level- liên quan tới hệ thống).
  • Tóm lại context giúp chúng ta dễ dàng truy cập và tương tác tới các tài nguyên của hệ thống, các thông tin, các dịch vụ (services), các thông số cấu hình, database, wallpaper, danh bạ, cuộc gọi, kết nối, chế độ rung (vibrator).
  • Sở dĩ hầu hết các lớp có liên quan tới UI (layout, button, textview, imageview, listview,…) đều phải super tới Context vì bản thân nó đảm nhiệm việc truy cập resource (R.id, R.layout,….). Nếu chúng ta không tham chiếu tới Context class thì đương nhiên không thể dùng tới các resources mà chúng ta đã tạo ra.

Và một đoạn trong Head first Android:

The application context
Let’s take a closer look at the line of code that displays the toast:
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_LONG).show();

The first parameter of the Toast.makeText() method is the context in which you want the toast to appear. When you create a toast in an activity, you use this to pass it the instance of the current activity. This doesn’t work in a service, because the service context doesn’t have access to the screen. Whenever you need a context in a service in situations like this, you must use getApplicationContext() instead. This gives us the context for whatever app happens to be in the foreground when the code is run. It means that the service will be able to make a toast appear, even if we’ve switched to a different app.

Bài liên quan
0