一,写在前面
这篇文章介绍Android中RemoteViews的基本使用,使用有这样的两个场景:通知栏,窗口小部件。下面会介绍如何实现向通知栏发送一个通知包括:系统默认样式的通知,自定义样式的通知;以及如何实现窗口小部件,并更新界面。值得一提的是,在开发一个应用的时候,若需要实现向通知栏发送通知,或窗口小部件,会发现我们无法直接通过findViewById来获取控件从而更新UI,因为这些界面根本就不在我们开发的应用里,应用里只有对应的xml文件。但是,可以通过使用RemoteViews来更新界面,内部实现原理是Binder机制,这样才能跨进程的处理UI。本篇文章不对RemoteViews的源码进行分析,只是涉及到RemoteViews的两个使用场景,后面会码一篇blog对RemoteViews进行源码角度的分析,敬请期待!
二,通知栏
在手机接收到微信消息时,手指沿着手机屏幕往下滑动,在通知栏会收到一条通知,于是通知栏就展现在我们面前了。那么如何向通知栏发送一条通知呢?
代码如下:
package com.example.notificationdemo;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.RemoteViews;
public class MainActivity extends Activity {
private NotificationManager nm;
public static int id = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nm = (NotificationManager) getSystemService(C