Android 开发工具类 16_NotificationActivity

在前台运行的 Activity 可以通过Dialog、Toast 向用户发出提示信息,而后台运行的程序,如下载、收到信息等 Service 应用,则需要使用 Notification(通知)向用户发出提示信息。

 1 import android.app.Activity;
 2 import android.app.Notification;
 3 import android.app.NotificationManager;
 4 import android.app.PendingIntent;
 5 import android.content.Context;
 6 import android.content.Intent;
 7 import android.os.Bundle;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11 import android.widget.RemoteViews;
12
13 public class NotificationActivity extends Activity {
14
15     Button b1;
16     NotificationManager nmanager;
17     Notification notification;
18     int notificationID=1;
19
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23
24         setContentView(R.layout.notificationlayout);
25         b1=(Button) findViewById(R.id.notification_bt1);
26         b1.setOnClickListener(new OnClickListener(){
27             @Override
28             public void onClick(View v) {
29                 //sendNotification();
30                 sendCustomNotification();
31             }}
32         );
33     }
34
35     // 发送自定义通知
36     public void sendCustomNotification(){
37         //1.获得 NotificationManager
38         nmanager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
39         //2.创建 Notification
40         notification =new Notification(
41             R.drawable.folder_open,
42             "收到文件",
43             System.currentTimeMillis()
44             );
45         RemoteViews rv = new RemoteViews(getPackageName(),R.layout.notificationinterfacelayout);
46         rv.setImageViewResource(R.id.notification_img, R.drawable.savefile);
47         rv.setTextViewText(R.id.notification_title, "催眠曲.mp3");
48         rv.setProgressBar(R.id.notification_progressbar, 100, 20, false);
49         notification.contentView=rv;
50         //3.设置属性,这些属性会在展开状态栏后显示
51         Intent intent =new Intent(this,ToastActivity.class);    //转向其他
52         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
53         PendingIntent pIntent=PendingIntent.getActivity(this, 0, intent, 0);
54         notification.contentIntent=pIntent;
55         //4.将Notification发给Manager
56         nmanager.notify(notificationID++, notification);
57     }
58
59     // 发送通知
60     public void sendNotification(){
61         //1.获得NotificationManager
62         nmanager=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
63         //2.创建Notification
64         notification =new Notification(
65             R.drawable.folder_open,
66             "收到文件",
67             System.currentTimeMillis()
68             );
69         // 可选属性
70         notification.defaults|=Notification.DEFAULT_SOUND;
71         notification.flags |=Notification.FLAG_INSISTENT;
72
73
74         // 3.设置属性,这些属性会在展开状态栏后显示
75         Intent intent =new Intent(this,ToastActivity.class);    //转向其他
76         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
77         PendingIntent pIntent=PendingIntent.getActivity(this, 0, intent, 0);
78         notification.setLatestEventInfo(this, "接收文件", "文件已经下载完成", pIntent);
79         // 4.将 Notification 发给 Manager
80         nmanager.notify(notificationID++, notification);
81     }
82
83 }
时间: 2024-10-20 16:42:00

Android 开发工具类 16_NotificationActivity的相关文章

android开发工具类总结(一)

一.日志工具类 Log.java 1 public class L 2 { 3 private L() 4 { 5 /* 不可被实例化 */ 6 throw new UnsupportedOperationException("Cannot be instantiated!"); 7 } 8 // 是否需要打印bug,可以在application的onCreate函数里面初始化 9 public static boolean isDebug = true; 10 private sta

Android 开发工具类 13_ SaxService

网络 xml 解析方式 1 package com.example.dashu_saxxml; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.util.HashMap; 6 import java.util.List; 7 8 import javax.xml.parsers.SAXParser; 9 import javax.xml.parsers.SAXParserFactory; 10

Android 开发工具类 35_PatchUtils

增量更新工具类[https://github.com/cundong/SmartAppUpdates] 1 import java.io.File; 2 3 import android.app.Activity; 4 import android.app.ProgressDialog; 5 import android.content.Context; 6 import android.content.Intent; 7 import android.net.Uri; 8 import and

Android开发工具类之DownloadManagerPro

这个工具类就是Android系统下载管理DownloadManager的一个增强类,提供了一些增强方法.或许大家不太了解这个安卓系统自带的DownloadManager这个类,我先做一个简单介绍吧.DownloadManager是系统开放给第三方应用使用的类,包含两个静态内部类DownloadManager.Query和DownloadManager.Request. DownloadManager.Request用来请求一个下载,DownloadManager.Query用来查询下载信息.用d

Android 开发工具类 03_HttpUtils

Http 请求的工具类: 1.异步的 Get 请求: 2.异步的 Post 请求: 3.Get 请求,获得返回数据: 4.向指定 URL 发送 POST方法的请求. 1 import java.io.BufferedReader; 2 import java.io.ByteArrayOutputStream; 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.InputStreamReader

Android 开发工具类 19_NetworkStateReceiver

检测网络状态改变类: 1.注册网络状态广播: 2.检查网络状态: 3.注销网络状态广播: 4.获取当前网络状态,true为网络连接成功,否则网络连接失败: 5.注册网络连接观察者: 6.注销网络连接观察者. 1 import java.util.ArrayList; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 i

Android 开发工具类 10_Toast 统一管理类

Toast 统一管理类: 1.短时间显示Toast: 2.长时间显示 Toast: 3.自定义显示 Toast 时间. 1 import android.content.Context; 2 import android.widget.Toast; 3 4 // Toast 统一管理类 5 public class T 6 { 7 8 private T() 9 { 10 /* cannot be instantiated */ 11 throw new UnsupportedOperation

Android 开发工具类 09_SPUtils

SharedPreferences 辅助类: 1.保存在手机里面的文件名: 2.保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法: 3.得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值: 4.移除某个 key 值已经对应的值: 5.清除所有数据: 6.查询某个 key 是否已经存在: 7.返回所有的键值对: 8.创建一个解决 SharedPreferencesCompat.apply 方法的一个兼容类: 1 import jav

Android 开发工具类 33_开机自运行

原理:该类派生自 BroadcastReceiver,重载方法 onReceive ,检测接收到的 Intent 是否符合 BOOT_COMPLETED,如果符合,则启动用户Activity. 1 import android.content.BroadcastReceiver; 2 import android.content.Context; 3 import android.content.Intent; 4 5 public class BootBroadcastReceiver ext