Một thông báo là một thông điệp mà bạn có thể hiển thị ra bên ngoài người sử dụng giao diện người dùng thông thường của ứng dụng của bạn. Khi bạn yêu cầu hệ thống đưa ra thông báo, đầu tiên nó sẽ xuất hiện dưới dạng một biểu tượng trong vùng thông báo.
Để xem chi tiết của thông báo, người dùng mở ngăn thông báo. Cả khu vực thông báo và ngăn thông báo đều là khu vực do hệ thống kiểm soát mà người dùng có thể xem bất cứ lúc nào.
Khóa học lập trình Android Toast cung cấp một cách tiện dụng để hiển thị cảnh báo cho người dùng nhưng vấn đề là những cảnh báo này không liên tục, điều đó có nghĩa là cảnh báo sẽ nhấp nháy trên màn hình trong vài giây và sau đó biến mất.
Để xem chi tiết của thông báo, bạn sẽ phải chọn biểu tượng sẽ hiển thị ngăn thông báo có chi tiết về thông báo. Trong khi làm việc với trình giả lập với thiết bị ảo, bạn sẽ phải nhấp và kéo xuống thanh trạng thái để mở rộng nó sẽ cung cấp cho bạn chi tiết như sau. Đây sẽ chỉ cao 64 dp và được gọi là chế độ xem bình thường.
Hình thức mở rộng ở trên có thể có Chế độ xem lớn sẽ có thêm chi tiết về thông báo. Bạn có thể thêm tối đa sáu dòng bổ sung trong thông báo. Ảnh chụp màn hình sau đây cho thấy thông báo như vậy.
Bạn có cách đơn giản để tạo một thông báo. Thực hiện theo các bước sau trong ứng dụng của bạn để tạo thông báo
Bước đầu tiên là tạo một trình xây dựng thông báo bằng cách sử dụng Notification Compat.Builder. build (). Bạn sẽ sử dụng Trình tạo thông báo để đặt các thuộc tính Thông báo khác nhau như các biểu tượng nhỏ và lớn, tiêu đề, mức độ ưu tiên, v.v.
Khi bạn có đối tượng Builder , bạn có thể đặt thuộc tính Thông báo bằng đối tượng Builder theo yêu cầu của bạn. Nhưng điều này là bắt buộc để thiết lập ít nhất là sau -
Một biểu tượng nhỏ, được đặt bởi setSmallIcon ()
Một tiêu đề, được đặt bởi setContentTitle ()
Chi tiết văn bản, được đặt bởi setContentText ()
Đây là một phần tùy chọn và bắt buộc nếu bạn muốn đính kèm một hành động với thông báo. Một hành động cho phép người dùng chuyển trực tiếp từ thông báo đến Hoạt động trong ứng dụng của bạn, nơi họ có thể xem một hoặc nhiều sự kiện hoặc thực hiện thêm công việc.
Hành động được xác định bởi PendingIntent có chứa Ý định bắt đầu một Hoạt động trong ứng dụng của bạn. Để kết hợp PendingIntent với một cử chỉ, hãy gọi phương thức thích hợp của NotificationCompat.Builder . Ví dụ: nếu bạn muốn bắt đầu Hoạt động khi người dùng nhấp vào văn bản thông báo trong ngăn thông báo, bạn thêm PendingIntent bằng cách gọi setContentIntent ().
Một đối tượng PendingIntent giúp bạn thực hiện một hành động thay mặt cho các ứng dụng của bạn, thường là vào lúc sau, mà không cần quan tâm đến việc ứng dụng của bạn có chạy hay không.Chúng tôi có sự trợ giúp của đối tượng trình tạo ngăn xếp sẽ chứa ngăn xếp ngược nhân tạo cho Hoạt động bắt đầu. Điều này đảm bảo rằng điều hướng lùi từ Hoạt động dẫn ra khỏi ứng dụng của bạn đến Màn hình chính.
Khóa học lập trình Android Hãy chắc chắn rằng bạn gọi phương thức NotificationCompat.Builder.build () trên đối tượng trình xây dựng trước khi thông báo. Phương pháp này kết hợp tất cả các tùy chọn đã được đặt và trả về một đối tượng Thông báo mới .
Thí dụ
Ví dụ sau đây cho thấy chức năng của thông báo Khóa học lập trình Android bằng cách sử dụng Lớp thông báo. Thông báo lớp đã được giới thiệu trong Android 4.1.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / com.example.notificationdemo / MainActivity.java . Tập tin này có thể bao gồm từng phương pháp vòng đời cơ bản.
Sau đây sẽ là nội dung của tệp res / layout / Activity_main.xml -Sau đây sẽ là nội dung của res / value / chuỗi.xml để xác định hai hằng số mới
Để chạy APP từ Android Studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.
Khóa học lập trình Android Studio cài đặt ứng dụng trên AVD của bạn và khởi động nó và nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, nó sẽ hiển thị theo cửa sổ Trình mô phỏng -
Bây giờ bấm vào nút , bạn sẽ thấy ở trên cùng một thông báo "Thông báo tin nhắn mới!" sẽ hiển thị trong giây lát và sau đó bạn sẽ có màn hình theo sau có một biểu tượng nhỏ ở góc trên cùng bên trái.
Bây giờ hãy mở rộng chế độ xem, nhấp dài vào biểu tượng nhỏ, sau một giây nó sẽ hiển thị thông tin ngày và đây là lúc bạn nên kéo thanh trạng thái xuống mà không nhả chuột. Bạn sẽ thấy thanh trạng thái sẽ mở rộng và bạn sẽ nhận được màn hình sau
Đoạn mã sau đây trình bày cách thay đổi thông báo được tạo trong đoạn mã trước để sử dụng kiểu xem lớn của Hộp thư đến. Tôi sẽ cập nhật phương thức sửa đổi displayNotification () để hiển thị chức năng này
Bây giờ nếu bạn sẽ cố chạy ứng dụng của mình thì bạn sẽ tìm thấy kết quả sau ở dạng mở rộng của chế độ xem
Để xem chi tiết của thông báo, người dùng mở ngăn thông báo. Cả khu vực thông báo và ngăn thông báo đều là khu vực do hệ thống kiểm soát mà người dùng có thể xem bất cứ lúc nào.
Khóa học lập trình Android Toast cung cấp một cách tiện dụng để hiển thị cảnh báo cho người dùng nhưng vấn đề là những cảnh báo này không liên tục, điều đó có nghĩa là cảnh báo sẽ nhấp nháy trên màn hình trong vài giây và sau đó biến mất.
Để xem chi tiết của thông báo, bạn sẽ phải chọn biểu tượng sẽ hiển thị ngăn thông báo có chi tiết về thông báo. Trong khi làm việc với trình giả lập với thiết bị ảo, bạn sẽ phải nhấp và kéo xuống thanh trạng thái để mở rộng nó sẽ cung cấp cho bạn chi tiết như sau. Đây sẽ chỉ cao 64 dp và được gọi là chế độ xem bình thường.
Hình thức mở rộng ở trên có thể có Chế độ xem lớn sẽ có thêm chi tiết về thông báo. Bạn có thể thêm tối đa sáu dòng bổ sung trong thông báo. Ảnh chụp màn hình sau đây cho thấy thông báo như vậy.
Tạo và gửi thông báo
Bạn có cách đơn giản để tạo một thông báo. Thực hiện theo các bước sau trong ứng dụng của bạn để tạo thông báo
Bước 1 - Tạo Trình tạo thông báo
Bước đầu tiên là tạo một trình xây dựng thông báo bằng cách sử dụng Notification Compat.Builder. build (). Bạn sẽ sử dụng Trình tạo thông báo để đặt các thuộc tính Thông báo khác nhau như các biểu tượng nhỏ và lớn, tiêu đề, mức độ ưu tiên, v.v.
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
Bước 2 - Đặt thuộc tính thông báo
Khi bạn có đối tượng Builder , bạn có thể đặt thuộc tính Thông báo bằng đối tượng Builder theo yêu cầu của bạn. Nhưng điều này là bắt buộc để thiết lập ít nhất là sau -
Một biểu tượng nhỏ, được đặt bởi setSmallIcon ()
Một tiêu đề, được đặt bởi setContentTitle ()
Chi tiết văn bản, được đặt bởi setContentText ()
mBuilder.setSmallIcon(R.drawable.notification_icon); mBuilder.setContentTitle("Notification Alert, Click Me!"); mBuilder.setContentText("Hi, This is Android Notification Detail!");Khóa học lập trình Android có nhiều thuộc tính tùy chọn mà bạn có thể đặt cho thông báo của mình. Để tìm hiểu thêm về chúng, hãy xem tài liệu tham khảo cho NotificationCompat.Builder.
Bước 3 - Đính kèm hành động
Đây là một phần tùy chọn và bắt buộc nếu bạn muốn đính kèm một hành động với thông báo. Một hành động cho phép người dùng chuyển trực tiếp từ thông báo đến Hoạt động trong ứng dụng của bạn, nơi họ có thể xem một hoặc nhiều sự kiện hoặc thực hiện thêm công việc.
Hành động được xác định bởi PendingIntent có chứa Ý định bắt đầu một Hoạt động trong ứng dụng của bạn. Để kết hợp PendingIntent với một cử chỉ, hãy gọi phương thức thích hợp của NotificationCompat.Builder . Ví dụ: nếu bạn muốn bắt đầu Hoạt động khi người dùng nhấp vào văn bản thông báo trong ngăn thông báo, bạn thêm PendingIntent bằng cách gọi setContentIntent ().
Một đối tượng PendingIntent giúp bạn thực hiện một hành động thay mặt cho các ứng dụng của bạn, thường là vào lúc sau, mà không cần quan tâm đến việc ứng dụng của bạn có chạy hay không.Chúng tôi có sự trợ giúp của đối tượng trình tạo ngăn xếp sẽ chứa ngăn xếp ngược nhân tạo cho Hoạt động bắt đầu. Điều này đảm bảo rằng điều hướng lùi từ Hoạt động dẫn ra khỏi ứng dụng của bạn đến Màn hình chính.
Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
Bước 4 - Phát hành thông báo
Cuối cùng, bạn chuyển đối tượng Thông báo cho hệ thống bằng cách gọi NotificationManager.notify () để gửi thông báo của bạn.![]() |
| Khóa học lập trình Android |
Khóa học lập trình Android Hãy chắc chắn rằng bạn gọi phương thức NotificationCompat.Builder.build () trên đối tượng trình xây dựng trước khi thông báo. Phương pháp này kết hợp tất cả các tùy chọn đã được đặt và trả về một đối tượng Thông báo mới .
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // notificationID allows you to update the notification later on. mNotificationManager.notify(notificationID, mBuilder.build());
Lớp NotificationCompat.Builder
Lớp NotificationCompat.Builder cho phép kiểm soát dễ dàng hơn tất cả các cờ, cũng như giúp xây dựng các bố cục thông báo điển hình. Sau đây là một số phương thức quan trọng và được sử dụng thường xuyên nhất có sẵn như là một phần của lớp NotificationCompat.Builder.| Sr.Không. | Hằng số & Mô tả |
|---|---|
| 1 | Xây dựng thông báo () Kết hợp tất cả các tùy chọn đã được đặt và trả về một đối tượng Thông báo mới. |
| 2 | Thông báo Compat.Builder setAuto Hủy (boolean auto Hủy) Đặt cờ này sẽ làm cho nó để thông báo tự động bị hủy khi người dùng nhấp vào bảng điều khiển. |
| 3 | NotificationCompat.Builder setContent (Chế độ xem RemoteViews) Cung cấp RemoteViews tùy chỉnh để sử dụng thay vì RemoteView. |
| 4 | Thông báo Compat.Builder setContentInfo (Thông tin CharSequence) Đặt văn bản lớn ở phía bên phải của thông báo. |
| 5 | Thông báo Compat.Builder setContentIntent (PendingIntent ý) Cung cấp PendingIntent để gửi khi thông báo được nhấp. |
| 6 | NotificationCompat.Builder setContentText (văn bản CharSequence) Đặt văn bản (hàng thứ hai) của thông báo, trong một thông báo tiêu chuẩn. |
| 7 | Thông báo Compat.Builder setContentTitle (tiêu đề CharSequence) Đặt văn bản (hàng đầu tiên) của thông báo, trong một thông báo tiêu chuẩn. |
| số 8 | Thông báo Compat.Builder setDefaults (int mặc định) Đặt các tùy chọn thông báo mặc định sẽ được sử dụng. |
| 9 | Thông báo Compat.Builder setLargeIcon (biểu tượng Bitmap) Đặt biểu tượng lớn được hiển thị trong mã đánh dấu và thông báo. |
| 10 | Thông báo Compat.Builder setNumber (số int) Đặt số lượng lớn ở phía bên phải của thông báo. |
| 11 | Thông báo Compat.Builder setOngceed (boolean đang diễn ra) Đặt xem đây có phải là thông báo đang diễn ra không. |
| 12 | Thông báo Compat.Builder setSmallIcon (biểu tượng int) Đặt biểu tượng nhỏ để sử dụng trong bố trí thông báo. |
| 13 | Thông báo Compat.Builder setStyle (Kiểu thông báoCompat.Style) Thêm một kiểu thông báo phong phú sẽ được áp dụng tại thời điểm xây dựng. |
| 14 | Thông báo Compat.Builder setTicker (CharSequence tickerText) Đặt văn bản được hiển thị trên thanh trạng thái khi có thông báo đầu tiên. |
| 15 | Thông báo Compat.Builder setVibrate (mẫu [] dài) Đặt mẫu rung để sử dụng. |
| 16 | Thông báo Compat.Builder setWhen (lâu khi) Đặt thời gian xảy ra sự kiện. Thông báo trong bảng điều khiển được sắp xếp theo thời gian này. |
Ví dụ sau đây cho thấy chức năng của thông báo Khóa học lập trình Android bằng cách sử dụng Lớp thông báo. Thông báo lớp đã được giới thiệu trong Android 4.1.
| Bậc thang | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng IDE studio Android để tạo một ứng dụng Android và đặt tên là hướng dẫn dưới dạng gói com.example.notificationdemo . |
| 2 | Sửa đổi tệp src / MainActivity.java và thêm mã để thông báo (""), nếu người dùng nhấp vào nút, nó sẽ gọi dịch vụ thông báo Android. |
| 3 | Tạo một tệp Java mới src / NotificationView.java , tệp này sẽ được sử dụng để hiển thị bố cục mới như một phần của hoạt động mới sẽ được bắt đầu khi người dùng sẽ nhấp vào bất kỳ thông báo nào |
| 4 | Sửa đổi bố cục tệp XML res / layout / Activity_main.xml để thêm nút Thông báo trong bố cục tương đối. |
| 5 | Tạo một tệp XML bố cục mới res / layout / notify.xml . Điều này sẽ được sử dụng làm tệp bố cục cho hoạt động mới sẽ bắt đầu khi người dùng sẽ nhấp vào bất kỳ thông báo nào. |
| 6 | Không cần thay đổi hằng chuỗi mặc định. Android studio chăm sóc các hằng chuỗi mặc định |
| 7 | Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của những thay đổi được thực hiện trong ứng dụng. |
package com.example.notificationdemo; import android.app.Activity; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { Button b1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b1 = (Button)findViewById(R.id.button); b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNotification(); } }); } private void addNotification() { NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.abc) .setContentTitle("Notifications Example") .setContentText("This is a test notification"); Intent notificationIntent = new Intent(this, MainActivity.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); builder.setContentIntent(contentIntent); // Add as notification NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); manager.notify(0, builder.build()); } }Sau đây sẽ là nội dung của tệp res / layout / notify.xml -
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="400dp" android:text="Hi, Your Detailed notification view goes here...." /> </LinearLayout>Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / com.example.notificationdemo / NotificationView.java .
package com.example.notificationdemo; import android.os.Bundle; import android.app.Activity; public class NotificationView extends Activity{ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.notification); } }
Sau đây sẽ là nội dung của tệp res / layout / Activity_main.xml -Sau đây sẽ là nội dung của res / value / chuỗi.xml để xác định hai hằng số mới
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="action_settings">Settings</string> <string name="app_name">tutorialspoint </string> </resources>Sau đây là nội dung mặc định của AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.notificationdemo" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.notificationdemo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NotificationView" android:label="Details of notification" android:parentActivityName=".MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"/> </activity> </application> </manifest>Hãy thử chạy ứng dụng hướng dẫn của bạn . Tôi giả sử bạn đã tạo AVD của mình trong khi thực hiện thiết lập môi trường.
Để chạy APP từ Android Studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.
Khóa học lập trình Android Studio cài đặt ứng dụng trên AVD của bạn và khởi động nó và nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, nó sẽ hiển thị theo cửa sổ Trình mô phỏng -
Bây giờ bấm vào nút , bạn sẽ thấy ở trên cùng một thông báo "Thông báo tin nhắn mới!" sẽ hiển thị trong giây lát và sau đó bạn sẽ có màn hình theo sau có một biểu tượng nhỏ ở góc trên cùng bên trái.
Bây giờ hãy mở rộng chế độ xem, nhấp dài vào biểu tượng nhỏ, sau một giây nó sẽ hiển thị thông tin ngày và đây là lúc bạn nên kéo thanh trạng thái xuống mà không nhả chuột. Bạn sẽ thấy thanh trạng thái sẽ mở rộng và bạn sẽ nhận được màn hình sau
Thông báo quan điểm lớn
Đoạn mã sau đây trình bày cách thay đổi thông báo được tạo trong đoạn mã trước để sử dụng kiểu xem lớn của Hộp thư đến. Tôi sẽ cập nhật phương thức sửa đổi displayNotification () để hiển thị chức năng này
Bây giờ nếu bạn sẽ cố chạy ứng dụng của mình thì bạn sẽ tìm thấy kết quả sau ở dạng mở rộng của chế độ xem

Không có nhận xét nào:
Đăng nhận xét