• notification


    一般的notification

      1 package com.qianfeng.gp08_day22_notification;
      2 
      3 import android.os.Bundle;
      4 import android.support.v4.app.NotificationCompat;
      5 import android.view.Gravity;
      6 import android.view.View;
      7 import android.view.View.OnClickListener;
      8 import android.widget.Toast;
      9 import android.app.Activity;
     10 import android.app.Notification;
     11 import android.app.NotificationManager;
     12 import android.app.PendingIntent;
     13 import android.content.Context;
     14 import android.content.Intent;
     15 
     16 
     17 /**
     18  * 使用的v4包中的NotificationCompat
     19  * @author qq
     20  *
     21  */
     22 public class MainActivity extends Activity{
     23 
     24     @Override
     25     protected void onCreate(Bundle savedInstanceState) {
     26         super.onCreate(savedInstanceState);
     27         setContentView(R.layout.activity_main);
     28     }
     29 
     30     public void btnClick(View v)
     31     {
     32         //创建通知 的构建器对象
     33         NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
     34         
     35         //设置通知的相关属性
     36         builder.setContentTitle("通知");
     37         
     38         builder.setContentText("下雨了");
     39         
     40         //必须设置,否则程序会崩溃
     41         builder.setSmallIcon(R.drawable.ic_launcher);
     42         
     43         //得到通知管理对象---属于系统服务
     44         NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
     45         
     46         //得到通知对象
     47         Notification notification = builder.build();
     48         
     49         //使用通知管理对象发送通知
     50         manager.notify((int)System.currentTimeMillis(), notification);//如果id相同,即使发送多个通知,也只显示一个
     51         
     52     }
     53     
     54     public void btnClick2(View v)
     55     {
     56         NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
     57         
     58         builder.setContentTitle("你有短信");
     59         builder.setContentText("你有3条短信");
     60         builder.setSmallIcon(R.drawable.ic_launcher);
     61         builder.setNumber(3);//设置数量
     62         //收到通知可以 是声音,灯光,震动
     63         //DEFAULT_VIBRATE  需要权限
     64         builder.setDefaults(Notification.DEFAULT_VIBRATE);
     65         
     66         Notification notification = builder.build();
     67         
     68         NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
     69         
     70         manager.notify(168, notification);
     71         
     72     }
     73     
     74     public void btnClick3(View v)
     75     {
     76         NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
     77         
     78         builder.setContentTitle("下载图片");
     79         builder.setContentText("正在下载");
     80         builder.setSmallIcon(R.drawable.ic_launcher);
     81         builder.setOngoing(true);//设置不可以被删除
     82         
     83         
     84         Notification n = builder.build();
     85         
     86         NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
     87         
     88         manager.notify(188, n);
     89     }
     90     
     91     public void btnClick4(View v)
     92     {
     93         NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
     94         
     95         builder.setContentTitle("你有短信")
     96                .setContentText("你有6条短信")
     97                .setSmallIcon(R.drawable.ic_launcher)
     98                .setNumber(6)
     99                .setDefaults(Notification.DEFAULT_ALL);
    100         
    101         Intent intent = new Intent(this,MainActivity.class);
    102         
    103         //可以当通知被点击时自动执行 startActiivty()
    104         PendingIntent pending = PendingIntent.getActivity(this, 6, intent, PendingIntent.FLAG_CANCEL_CURRENT);
    105                                                                               //跳转后通知会消失
    106         builder.setContentIntent(pending);
    107         
    108         builder.setAutoCancel(true);//设置通知自动消失
    109         
    110         Notification ntf = builder.build();
    111         
    112         NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    113         
    114         manager.notify(88, ntf);
    115     }
    116     
    117     public void btnClick5(View v)
    118     {
    119         Toast toast = new Toast(this);
    120         
    121         View view = getLayoutInflater().inflate(R.layout.toast_layout, null);
    122         
    123         toast.setView(view);//设置吐司使用的布局
    124         
    125         toast.setGravity(Gravity.CENTER, 0,0);//设置吐司的显示位置
    126         
    127         toast.setDuration(Toast.LENGTH_SHORT);
    128         
    129         toast.show();
    130     }
    131 
    132 
    133     
    134     
    135 
    136 }
    mainActivity.java

    带进度条的异步下载notification

     1 package com.example.asynctasknotification;
     2 
     3 import android.os.Bundle;
     4 import android.app.Activity;
     5 import android.view.Menu;
     6 import android.view.View;
     7 import android.view.View.OnClickListener;
     8 import android.widget.Button;
     9 import android.widget.ImageView;
    10 
    11 public class MainActivity extends Activity {
    12 
    13     private ImageView imageView;
    14     private Button btn;
    15     private String path="http://images2015.cnblogs.com/blog/493196/201509/493196-20150901203057606-579869820.jpg";
    16     @Override
    17     protected void onCreate(Bundle savedInstanceState) {
    18         super.onCreate(savedInstanceState);
    19         setContentView(R.layout.activity_main);
    20         
    21         imageView=(ImageView) findViewById(R.id.iv);
    22         btn=(Button) findViewById(R.id.btn);
    23         
    24         btn.setOnClickListener(new OnClickListener() {
    25             
    26             @Override
    27             public void onClick(View v) {
    28                 new MyAsyncTask(MainActivity.this,imageView).execute(path);
    29                 
    30             }
    31         });
    32         
    33         
    34         
    35         
    36     }
    37 
    38     @Override
    39     public boolean onCreateOptionsMenu(Menu menu) {
    40         // Inflate the menu; this adds items to the action bar if it is present.
    41         getMenuInflater().inflate(R.menu.main, menu);
    42         return true;
    43     }
    44 
    45 }
    mainActivity.java
      1 package com.example.asynctasknotification;
      2 
      3 import java.io.ByteArrayOutputStream;
      4 import java.io.IOException;
      5 import java.io.InputStream;
      6 import java.net.HttpURLConnection;
      7 import java.net.MalformedURLException;
      8 import java.net.URL;
      9 
     10 import android.app.Notification;
     11 import android.app.NotificationManager;
     12 import android.content.Context;
     13 import android.graphics.Bitmap;
     14 import android.graphics.BitmapFactory;
     15 import android.os.AsyncTask;
     16 import android.support.v4.app.NotificationCompat;
     17 import android.widget.ImageView;
     18 
     19 public class MyAsyncTask extends AsyncTask<String, Integer, Bitmap> {
     20 
     21     private NotificationCompat.Builder builder;
     22     private NotificationManager manager;
     23     private ImageView imageView;
     24     private Context context;
     25 
     26     public MyAsyncTask(Context context, ImageView imageView) {
     27         this.imageView = imageView;
     28         this.context = context;
     29         manager = (NotificationManager) context
     30                 .getSystemService(Context.NOTIFICATION_SERVICE);
     31         builder = new NotificationCompat.Builder(context);
     32         builder.setContentTitle("下载图片");
     33         builder.setContentText("正在下载");
     34         builder.setSmallIcon(R.drawable.ic_launcher);
     35     }
     36 
     37     @Override
     38     protected Bitmap doInBackground(String... params) {
     39     
     40         Bitmap bitmap = null;
     41         URL url;
     42         try {
     43             url = new URL(params[0]);
     44             HttpURLConnection conn = (HttpURLConnection) url.openConnection();
     45             conn.setRequestMethod("GET");
     46             conn.setConnectTimeout(5000);
     47             conn.setDoInput(true);
     48 
     49             InputStream in = null;
     50             if (conn.getResponseCode() == 200) {
     51                 in = conn.getInputStream();
     52                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
     53                 int total = conn.getContentLength();
     54                 int len = 0;
     55                 int count = 0;
     56                 byte[] by = new byte[1024];
     57                 while ((len = in.read(by)) != -1) {
     58                     baos.write(by, 0, len);
     59                     count += len;
     60                     publishProgress((int) (100 * count / total));
     61                 }
     62                 byte[] b = baos.toByteArray();
     63                 bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
     64             }
     65         } catch (MalformedURLException e) {
     66             e.printStackTrace();
     67         } catch (IOException e) {
     68             e.printStackTrace();
     69         }
     70         return bitmap;
     71     }
     72 
     73     @Override
     74     protected void onCancelled() {
     75         // TODO Auto-generated method stub
     76         super.onCancelled();
     77     }
     78 
     79     @Override
     80     protected void onPreExecute() {
     81         super.onPreExecute();
     82 
     83         builder.setOngoing(true);// 设置不可以被删除
     84         builder.setProgress(100, 0, false);
     85 
     86         manager.notify(188, builder.build());
     87 
     88     }
     89 
     90     @Override
     91     protected void onPostExecute(Bitmap result) {
     92 
     93         builder.setOngoing(false);// 设置可以被删除
     94         builder.setContentText("下载完毕");
     95         builder.setProgress(0, 0, false);
     96         manager.notify(188, builder.build());
     97 
     98         imageView.setImageBitmap(result);
     99 
    100     }
    101 
    102     @Override
    103     protected void onProgressUpdate(Integer... values) {
    104         builder.setProgress(100, values[0], false);
    105         builder.setContentText("已下载"+values[0]+"%");
    106         manager.notify(188, builder.build());
    107     }
    108 
    109 }
    asynctask
  • 相关阅读:
    2013年3月17日星期日
    2013第11周一
    2013年第11周二
    2013年第11周三今天开发踩过的坑
    2013第11周四开发摸索
    2013第10周六项目中用到的前端技术学习1
    PHP 数组使用之道
    快递查询API接口集成,有需要的可以直接用
    PHP intval() 函数
    巧用 PHP 数组函数
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4822353.html
Copyright © 2020-2023  润新知