您的位置:首页 > 移动开发 > Android开发

Notification二

2016-05-28 09:30 330 查看
Francis 的Notification学习之旅二



1.PaddingIntent与Intent的区别;

2.Notification的使用。

一、Intent和PendingIntent的区别

a. Intent是立即使用的,而PendingIntent可以等到事件发生后触发,PendingIntent可以cancel

b. Intent在程序结束后即终止,而PendingIntent在程序结束后依然有效

c. PendingIntent自带Context,而Intent需要在某个Context内运行

d. Intent在原task中运行,PendingIntent在新的task中运行


参考链接:http://blog.csdn.net/yuzhiboyi/article/details/8484771

http://blog.csdn.net/zeng622peng/article/details/6180190


二、Notification的使用

高版本通常使用Notification.builder来建立。

代码参考:

package cqmu.francisteam.com.myapplication;

import android.annotation.TargetApi;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private Button button;
private NotificationManager manager;
private Notification.Builder builder;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
builder = new Notification.Builder(this);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
builder.setContentIntent(contentIntent);
builder.setContentTitle("new notification is coming");
builder.setContentText("hello world");
builder.setSmallIcon(R.drawable.launcher);
Notification notification = builder.build();
manager.notify(1000, notification);

}
});
}
}


说明:DEFAULT_VIBRATE默认的震动需要注册权限到manifest,<uses-permission android:name = "android.permission.VIBRATE"/>

闪光灯也需要如同上述操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android