【Android】利用Notification操作设备的通知栏

很多垃圾的安卓应用可以时不时向设备的通知栏推送消息,非常的烦人,这是怎么做到的呢?用一个例子来说明这个问题。

如下图:

在MainActivity中有三个按钮,每次点击“显示通知”则向设备的通知栏推送一条消息。同时操作设备闪光灯与振动器。

“删除最近一条通知”按钮,可以删除本app最近向通知栏推送的一条通知(废话-_-!)

“删除所有通知”按钮,可以清除通知栏的所有推送,当然,现在一些安卓系统本身就有这个功能。

点击通知栏的通知,则显示一个Dialog类型的Activity,并且删除这条通知。

1、首先,设置好res\values\strings.xml中的整个app的各个字体,,当然你也可以边开放边设置,修改此文件的代码如下所示:

<?xml version="1.0" encoding="utf-8"?><resources><string name="app_name">通知</string><string name="action_settings">Settings</string><string name="button1">显示通知</string><string name="button2">删除最近一条通知</string><string name="button3">删除所有通知</string><string name="activity1_name">通知标题</string><string name="activity1_textview1">我是一条通知,欢迎</string><string name="activity1_button1">关闭</string></resources>2、从这个文件大家已经可以看到,点击通知,将会进入一个新的Activity1,里面就有一个标签文本,与“关闭”按钮。因此,我们先在工程的src文件夹中新建一个继承android.app.Activity类的Activity1.java,同时在res\layout新建一个关于Activity1的布局文件activity1.xml。修改根目录的AndroidManifest.xml如下,注册这个Activity1.java,同时要求系统赋予这个应用操作设备闪光灯与振动器的权限。一会儿,推通知的时候打开设备闪光灯,与振动设备。

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android=""package="com.notification"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="18" /><!– 需要操作闪光灯 –><uses-permission android:name="android.permission.FLASHLIGHT" /><!– 需要操作震动器 –><uses-permission android:name="android.permission.VIBRATE" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name="com.notification.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><!– 注册Activity1 –><activityandroid:name="com.notification.Activity1"android:label="@string/activity1_name"android:theme="@android:style/Theme.Dialog" ></activity></application></manifest>3、之后,修改res\layout中的Activity1的布局文件activity1.xml如下,自上而下的线性布局,摆一个标签文本、一个关闭按钮没什么好说的。给这个Button赋予id,一会儿要在Activity1.java注册事件。

<LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/activity1_textview1"android:textSize="24sp" /><Buttonandroid:id="@+id/activity1_button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/activity1_button1"android:textSize="24sp" /></LinearLayout>4、其次,修改Activity1.java如下,为这个按钮注册点击事件,仅仅是关闭这个Activity1.java,没什么好说的。package com.notification;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class Activity1 extends Activity {private Button button1;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity1);// 此Activity的布局文件为activity1.xmlbutton1 = (Button) findViewById(R.id.activity1_button1); // 获取button1button1.setOnClickListener(new OnClickListener() {// 为button1添加点击事件@Overridepublic void onClick(View v) {finish();// 关闭此Activity}});}}5、然后,修改res\layout\activity_main.xml,在MainActivity中使用自上而下的线性布局,摆三个按钮,也没有什么好说的。分别赋予不同的id。一会操作它们。

<LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button1"android:textSize="24sp" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button2"android:textSize="24sp" /><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button3"android:textSize="24sp" /></LinearLayout>6、最后才是我们的重头戏,修改MainActivity.java的代码如下,三个按钮的点击皆为操作通知:

懂得接受失败的人,就是懂得人生真谛的人,

【Android】利用Notification操作设备的通知栏

相关文章:

你感兴趣的文章:

标签云: