`

notification 学习

 
阅读更多

 

使用步骤:

1)创建自定义视图

2)获取远程视图对象(注:Notification的contentView不能为空)

3)设置PendingIntent(来响应各种事件)

4)发起Notification

大体4步骤这里就不详细说了,下面就把DEMO中的列子拿出来说下 

 

 1 Activity 中的代码

 

 

/**
 * Notification的使用
 * @author root
 *
 */
public class NotificationActivity extends Activity {
    
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notification);
        
        Button btn1 = (Button) findViewById( R.id.btn1);
        btn1.setOnClickListener( new BtnListener());
        Button btnCostom2 = (Button) findViewById( R.id.btn_costom2);
        btnCostom2.setOnClickListener( new BtnListener());    
        
    }

    
    class BtnListener implements  OnClickListener{

		@Override
		public void onClick(View v) {
			Integer id = v.getId();
			switch ( id ) {
				case R.id.btn1:
					notifition1();
					break;
				case R.id.btn_costom2:
					showCustomizeNotification();
					break;
				default:
					break;
			}
		}
    }
    
    /**
     *  Android 默认的notification 
     */
    private void notifition1(){
    	
        Bitmap btm = BitmapFactory.decodeResource(getResources(),
                R.drawable.ic_launcher);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
        		NotificationActivity.this).setSmallIcon(R.drawable.ic_launcher)
                .setContentTitle("new message title")
                .setContentText("wzt@android.com内容的主体");
        mBuilder.setTicker("New message");//第一次提示消息的时候显示在通知栏上
        mBuilder.setNumber(12);
        mBuilder.setLargeIcon(btm);
        mBuilder.setAutoCancel(true);//自己维护通知的消失
        
        //构建一个Intent,点击通知栏,则跳转到 MainActivity上
        Intent resultIntent = new Intent(NotificationActivity.this,
        		MainActivity.class);
        //封装一个Intent
        PendingIntent resultPendingIntent = PendingIntent.getActivity(
        		NotificationActivity.this, 0, resultIntent,
                PendingIntent.FLAG_UPDATE_CURRENT);
        // 设置通知主题的意图
        mBuilder.setContentIntent(resultPendingIntent);
        //获取通知管理器对象
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.notify(0, mBuilder.build());	
    	
    }
    
    /**
     * 自定义 Notification的布局 
     */
    private   void  showCustomizeNotification(){
    	  CharSequence title = "i am new";  
          int icon = R.drawable.ic_launcher;  
          long when = System.currentTimeMillis();  
          Notification noti = new Notification(icon, title, when + 10000);  
          noti.flags = Notification.FLAG_INSISTENT;  
            
          // 1、创建一个自定义的消息布局 view.xml  
          // 2、在程序代码中使用RemoteViews的方法来定义image和text。然后把RemoteViews对象传到contentView字段  
          RemoteViews remoteView = new RemoteViews(this.getPackageName(),R.layout.notification_costom);  
          remoteView.setImageViewResource(R.id.image, R.drawable.ic_launcher);  
          remoteView.setTextViewText(R.id.text , "通知类型为:自定义View");  
          noti.contentView = remoteView;  
          // 3、为Notification的contentIntent字段定义一个Intent(注意,使用自定义View不需要setLatestEventInfo()方法)  
           
          //这儿点击后简单启动Settings模块  (Activity)
          PendingIntent contentIntent = PendingIntent.getActivity  
                           (NotificationActivity.this, 0,new Intent("android.settings.SETTINGS"), 0);  
          noti.contentIntent = contentIntent;  


          NotificationManager mnotiManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);  
          mnotiManager.notify(1, noti);  
          
    }
}

 2 Activity 对应的布局

  

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="通知1" />
    
    <Button
        android:id="@+id/btn_costom2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="通知2" />  

</LinearLayout>

 3 自定义的notification的布局 

  

<?xml version="1.0" encoding="utf-8"?>  
  
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="horizontal" android:layout_width="fill_parent"  
    android:layout_height="fill_parent">  
  
    <ImageView android:id="@+id/image" android:layout_width="wrap_content"  
        android:layout_height="fill_parent" />  
  
    <TextView android:id="@+id/text" android:layout_width="wrap_content"  
        android:layout_toRightOf="@+id/image"  
        android:layout_height="wrap_content" android:textColor="#000" />  

    <Button android:id="@+id/btn1" android:layout_width="wrap_content"  
        android:layout_toRightOf="@+id/image"  
        android:layout_height="wrap_content" android:textColor="#000" 
        android:text="点击跳转"/>  
              
    <ProgressBar android:id="@+id/progress_horizontal"  
        style="?android:attr/progressBarStyleHorizontal"   
        android:layout_below="@+id/text"  
        android:layout_toRightOf="@+id/image"  
        android:layout_width="fill_parent" android:layout_height="wrap_content"  
        android:max="100" android:progress="50" android:secondaryProgress="75" />  
  
  
</RelativeLayout>  

 

 附件是网上大神写的例子,弄过来做个备份以后好用。

 

 

 

分享到:
评论

相关推荐

    android学习之toast和notification

    在Android应用开发中,`Toast`和`Notification`是两种重要的用户反馈机制,它们用于向用户展示短暂或持久的信息提示。对于初学者来说,理解并掌握这两种机制是至关重要的。 `Toast`是一种轻量级的提示方式,它会在...

    Notification

    通过运行和分析这个示例代码,开发者可以更好地理解`Notification`的工作原理,学习如何根据应用需求定制通知。 此外,还有一些高级特性和最佳实践需要注意: - 使用`PendingIntent`连接`Notification`到具体的动作...

    Android学习下 toast notification用法.rar

    本资源“Android学习下 toast notification用法.rar”包含了有关如何在Android应用中使用这两种组件的源码实例,适合Android初学者进行学习和参考。 1. **Toast** Toast在Android中用于在界面上显示临时消息,它会...

    Android 通知栏Notification的全面整合学习(各种姿势都有,供您选择)

    在Android系统中,通知栏(Notification)是一种至关重要的交互手段,它允许应用在不干扰用户当前操作的情况下,向用户传达信息或提醒。本资源包针对Android通知栏的使用进行了全面整合,涵盖了各种应用场景和实现...

    Notification示例

    在Android开发中,Notification是应用与用户交互的重要方式,它能够在状态栏中向用户展示信息,即使用户不在应用中也能接收到消息提醒。...通过学习和实践,开发者可以创建出更符合用户需求,且具有吸引力的通知。

    学习Notification小结

    通过以上几个小例子的学习,我们可以了解到Notification在Android开发中的强大功能。不仅能够展示简单的文本信息,还可以自定义布局、显示图片甚至处理复杂的逻辑操作。掌握了这些技能后,开发者可以更加灵活地运用...

    Notification顶部通知栏demo

    在Android开发中,`Notification`是系统提供的一种机制,它能够在状态栏或者顶部通知栏显示信息,...通过"Notification顶部通知栏demo"这样的实践项目,开发者可以更好地学习和理解这些概念,并在实际项目中灵活运用。

    Notification Demo

    在Android开发中,...学习并理解这些概念和用法对于开发出用户体验良好的Android应用至关重要。`NotificationDemo`是一个很好的起点,可以帮助开发者快速掌握通知的使用,并为自己的应用创建定制化的通知体验。

    学习android notification用法

    在提供的`NotificationTest`文件中,可能包含了示例代码,用于测试和学习以上概念。通常,它会包含一个主活动(MainActivity),在其中创建和发布通知,以及可能的辅助类和方法。 总之,理解并熟练使用Android ...

    Notification的实用技巧

    通过学习和实践这些示例,开发者可以更好地掌握Notification的使用,从而提供更加直观和高效的用户反馈。 总的来说,Notification的实用技巧涉及到通知创建、定制、交互以及优化的方方面面。理解并运用这些技巧,有...

    Notification的使用示例各种效果

    在`TestNotifacation`这个示例中,可能包含了不同配置的Notification实例,包括不同样式、声音、震动等,以便开发者学习和参考。实践中,应根据实际需求选择合适的配置,同时注意保持用户体验的一致性和良好性。

    notification实现

    在Android应用开发中,`Notification`是用户界面中不可或缺的一部分,它用于在状态栏中向用户显示...通过研究`TestLocalNotification`中的代码,开发者可以深入学习`Notification`的使用技巧,并将其应用于实际项目中。

    多种notification的demo(带注释)

    5. **带注释的代码**:代码中包含注释对于理解每个步骤的作用至关重要,尤其是对初学者,可以帮助他们更好地学习和理解`Notification`的用法。 在压缩包的文件列表中,我们可以看到项目的一些关键组成部分: - `....

    NotificationDemo

    NotificationDemo是一个专门用于演示如何创建和管理通知的示例项目,通过这个项目,我们可以深入学习Android的通知机制。 首先,我们要了解`Notification`的基本结构。一个`Notification`通常包含标题(title)、...

    自定义Notification样例工程

    在Android开发中,Notification是应用与用户交互的重要方式,它可以在状态栏中显示消息,即使应用不在前台运行也能提醒用户。本项目“自定义Notification样例工程”专注于讲解如何根据需求定制自己的通知样式,增强...

    AndroidNotification

    在Android系统中,Notification是应用与用户...总之,`AndroidNotification`项目提供了一个全面学习和测试Android通知功能的平台,开发者可以通过此项目深入了解Notification的各个方面,提升自己的Android开发技能。

    NotificationDemo,类似QQ图标实现,

    在`NotificationDemo`中,开发者会学习如何创建、配置和显示`Notification`,包括设置通知的图标、标题、内容、优先级等属性。 2. **扩展通知(Big Picture/Big View)**:为了展示更多的信息,`Notification`可以...

    Android notification进度条 demo

    在Android开发中,通知(Notification)是用户界面中不可或缺的一部分,它用于在状态栏...通过这个示例,开发者可以学习到如何创建、更新和管理具有进度条的通知,这对于任何涉及后台任务的Android应用都是至关重要的。

    Notification用法

    通过学习和修改这个示例,你可以更好地理解和掌握Android中的Notification机制。 总之,Notification在Android应用中扮演着至关重要的角色,为用户提供非侵入性的信息提示。理解并熟练使用Notification API,无论是...

    Android 学习(27)Notification 通知

    通过分析和学习这个项目的源码,你可以更好地理解和实践`Notification`的使用。 总之,`Notification`是Android应用与用户交互的关键工具,`NotificationManager`和`Notification.Builder`简化了创建和管理通知的...

Global site tag (gtag.js) - Google Analytics