1.Intent
我们在开发web项目的时候,总是从这个页面跳转到另一个页面,而且需要从这个页面带必要的值到那个页面。其实Intent就是实现这样的功能。
2.NotificationManager
通知的设置等操作相对比较简单,基本的使用方式就是用新建一个Notification对象,然后设置好通知的各项参数,然后使用系统后台运行的NotificationManager服务将通知发出来。
实现的步骤如下:
1)得到NotificationManager:
2)创建一个新的Notification对象:
3)填充Notification的各个属性:
3.PendingIntent
PendingIntent为Intent的包装,这里是启动Intent的描述,PendingIntent.getActivity 返回的PendingIntent表示,此PendingIntent实例中的Intent是用于启动 Activity 的Intent。PendingIntent.getActivity的参数依次为:Context,发送者的请求码(可以填0),用于系统发送的Intent,标志位。
其中 PendingIntent.FLAG_UPDATE_CURRENT 表示如果该描述的PendingIntent已存在,则改变已存在的PendingIntent的Extra数据为新的PendingIntent的Extra数据。
这里再简要说一下 Intent与 PendingIntent的区别:
Intent:意图,即告诉系统我要干什么,然后系统根据这个Intent做对应的事。如startActivity相当于发送消息,而Intent是消息的内容。
接下来就来展示利用android的"通知Notification"来实现msn的登录状态
粘贴下代码吧。
main.xml
< xml version="1.0" encoding="utf-8" >
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="当前状态" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_toRightOf="@id/textview01" />
second.xml
< xml version="1.0" encoding="utf-8" >
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
MainActivity类
public class MainActivity extends Activity {
private Spinner mSpinner;
private String[] data = {"离线","在线","忙碌","离开"};
private ArrayAdapter
//声明通知(消息)管理器
private NotificationManager mNotificationManager;
//声明Notification对象
private Notification mNotification;
private PendingIntent mPendingIntent;
private Intent mIntent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化NotificationManager对象
mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
mSpinner = (Spinner)findViewById(R.id.spinner);
mAdapter = new ArrayAdapter
mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(mAdapter);
//点击通知时转移内容
mIntent = new Intent(MainActivity.this, MainActivity.class);
//主要是设置点击通知时显示内容的类
mPendingIntent = PendingIntent.getActivity(this, 0, mIntent, 0);
//构造Notification对象
mNotification = new Notification();
mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView< > arg0, View arg1,
int arg2, long arg3) {
//设置通知在状态栏显示的图标
switch (arg2) {
case 0:
mNotification.icon = R.drawable.offine;
break;
case 1:
mNotification.icon = R.drawable.