今天介绍一个Android应用中很使用的一个功能,状态栏通知。相信大家在开发应用中会经常用到这个,当然我们这里讲述的主要是代码实现,没有讲在什么情况下使用状态栏通知,这需要你开发的实际应用决定,遵守一个规则,用户体验。

MainActivity类

package com.example.notification;


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.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


public class MainActivity extends Activity {
private EditText editText1;
private EditText editText2;
private EditText editText3;
private Button button;
private Listener1 listener = new Listener1();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

editText1 = (EditText)this.findViewById(R.id.et1);
editText2 = (EditText)this.findViewById(R.id.et2);
editText3 = (EditText)this.findViewById(R.id.et3);
button= (Button)this.findViewById(R.id.b);
button.setOnClickListener(listener);
}


private final class Listener1 implements OnClickListener {


@Override
public void onClick(View v) {
String ticker = editText1.getText().toString(); //概要
String title = editText2.getText().toString();//标题
String content = editText3.getText().toString();//内容

Notification notification = new Notification(android.R.drawable.stat_notify_chat, ticker, System.currentTimeMillis());//概要
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456789"));//点击之后的事件为呼叫123456789号码
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 100, intent, 0);//1为请求码 0为Flag标志位
notification.setLatestEventInfo(MainActivity.this, title, content, pendingIntent);//点击通知时候进行的活动:用contentIntent传递
notification.defaults = Notification.DEFAULT_SOUND;//发送状态栏的默认铃声
notification.flags = Notification.FLAG_AUTO_CANCEL;//点击通知之后,取消状态栏图标

NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);//得到系统通知服务
manager.notify(100, notification);//通知系统我们定义的notification,id为该notification的id;这里定义为100.

}

}

}


布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >


<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="概要"/>
<EditText
android:id="@+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="概要"/>
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标题"/>
<EditText
android:id="@+id/et2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标题"/>
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内容"/>
<EditText
android:id="@+id/et3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内容"/>
<Button
android:id="@+id/b"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送"/>


</LinearLayout>



AndroidManifest文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.notification"
android:versionCode="1"
android:versionName="1.0" >


<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="15" />


<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.CALL_PHONE"/>//获得拨打电话权限
</manifest>


代码还是比较简单的,需要注意的地方我都注释了。

核心代码:

Notification notification = new Notification(android.R.drawable.stat_notify_chat, ticker, System.currentTimeMillis());//概要
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:123456789"));//点击之后的事件为呼叫123456789号码
PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 100, intent, 0);//1为请求码 0为Flag标志位
notification.setLatestEventInfo(MainActivity.this, title, content, pendingIntent);//点击通知时候进行的活动:用contentIntent传递
notification.defaults = Notification.DEFAULT_SOUND;//发送状态栏的默认铃声
notification.flags = Notification.FLAG_AUTO_CANCEL;//点击通知之后,取消状态栏图标

NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);//得到系统通知服务
manager.notify(100, notification);//通知系统我们定义的notification,id为该notification的id;这里定义为100.

最后两行代码注意下就可以,得到一个通知管理器。


更多相关文章

  1. Android通知栏监听之NotificationListenerService
  2. Android 中自定义View的应用.
  3. Androidの自定义圆角按钮button
  4. android自定义Toast之-弹出消息
  5. SeekBar的使用和自定义
  6. Robolectric使用(四)自定义
  7. Android 自定义相机Demo 入门学习
  8. 三种方式实现自定义圆形页面加载中效果的进度条

随机推荐

  1. network: Android(安卓)网络判断(wifi、3G
  2. Android TTS学习——用五种外语说出“我
  3. android计算器原创【安卓进化三】
  4. Android.mk加入aidl编译
  5. ADSL - Android AVD 不能上网问题
  6. Android之关于onSaveInstanceState和onRe
  7. Android模拟器虚拟串口实现串口通信
  8. android 调用系统相机拍照,并保存到SD卡
  9. [android]通讯中常用到的Helper
  10. [置顶] android触摸屏校正详解