• AndroidのNotification之全方面应用


    主Activity

     1 package com.test.nitifi;
     2 
     3 import android.app.Activity;
     4 import android.app.Notification;
     5 import android.app.NotificationManager;
     6 import android.app.PendingIntent;
     7 import android.content.Context;
     8 import android.content.Intent;
     9 import android.net.Uri;
    10 import android.os.Bundle;
    11 import android.util.Log;
    12 import android.view.View;
    13 import android.widget.Button;
    14 
    15 public class MainActivity extends Activity implements View.OnClickListener{
    16     /** Called when the activity is first created. */
    17     int i;
    18     @Override
    19     public void onCreate(Bundle savedInstanceState) {
    20         super.onCreate(savedInstanceState);
    21         setContentView(R.layout.main);
    22         Log.e("MainActivity", "onCreate");
    23         initViews();
    24     }
    25     
    26     void initViews(){
    27         Button btEnable = (Button)findViewById(R.id.Notifi);
    28         Button btCancel = (Button)findViewById(R.id.Cancel);
    29         btEnable.setOnClickListener(this);
    30         btCancel.setOnClickListener(this);
    31     }
    32 
    33     @Override
    34     public void onClick(View v) {
    35         // TODO Auto-generated method stub
    36         switch(v.getId()){
    37         case R.id.Notifi:
    38             Intent intent = new Intent(this,MyService.class);
    39             if(i%2==0){
    40                 intent.putExtra("s", true);
    41             }else{
    42                 intent.putExtra("s", false);
    43             }
    44             startService(intent);
    45             i++;
    46             break;
    47         case R.id.Cancel:
    48             stopService(new Intent(this,MyService.class));
    49             
    50             break;
    51         }
    52     }
    53 
    54     @Override
    55     protected void onDestroy() {
    56         // TODO Auto-generated method stub
    57         super.onDestroy();
    58         Log.e("MainActivity", "onDestroy");
    59     }
    60 
    61     @Override
    62     protected void onResume() {
    63         // TODO Auto-generated method stub
    64         super.onResume();
    65         Log.e("MainActivity", "onResume");
    66         Log.e("Action", getIntent().getAction());
    67         
    68         String is = this.getIntent().getStringExtra("interval");
    69         if(is!=null){
    70             Log.e("MainActivity", "有");
    71         }else{
    72             Log.e("MainActivity", "没有");
    73         }
    74     }
    75 
    76     @Override
    77     protected void onStart() {
    78         // TODO Auto-generated method stub
    79         super.onStart();
    80         Log.e("MainActivity", "onStart");
    81     }
    82 
    83     @Override
    84     protected void onStop() {
    85         // TODO Auto-generated method stub
    86         super.onStop();
    87         Log.e("MainActivity", "onStop");
    88     }
    89     
    90     
    91 }
     1 package com.test.nitifi;
     2 
     3 import android.app.Notification;
     4 import android.app.NotificationManager;
     5 import android.app.PendingIntent;
     6 import android.app.Service;
     7 import android.content.Context;
     8 import android.content.Intent;
     9 import android.net.Uri;
    10 import android.os.IBinder;
    11 import android.util.Log;
    12 
    13 public class MyService extends Service{
    14 
    15     NotificationManager nm;
    16     Notification nitifi;
    17     PendingIntent pi;
    18     Intent intent;
    19     
    20     @Override
    21     public IBinder onBind(Intent arg0) {
    22         // TODO Auto-generated method stub
    23         return null;
    24     }
    25 
    26     @Override
    27     public void onCreate() {
    28         // TODO Auto-generated method stub
    29         super.onCreate();
    30         Log.e("MyService", "onCreate");
    31         nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    32         intent = new Intent(this,MyReceiver.class);
    33         intent.setAction("act");
    34         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    35         intent.putExtra("wo", "buxing");
    36         intent.putExtra("nitifiId", 0);
    37         pi = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    38         nitifi = new Notification(R.drawable.ic_launcher,"新订单",System.currentTimeMillis());
    39         nitifi.setLatestEventInfo(this, "点击可查看", "2015645343454", pi);
    40         nitifi.sound = Uri.parse("android.resource://"+this.getPackageName()+"/"+R.raw.neworder);
    41     }
    42 
    43     @Override
    44     public void onDestroy() {
    45         // TODO Auto-generated method stub
    46         super.onDestroy();
    47         Log.e("MyService", "onDestroy");
    48         nm.cancel(0);
    49     }
    50 
    51     @Override
    52     public void onStart(Intent intent, int startId) {
    53         // TODO Auto-generated method stub
    54         super.onStart(intent, startId);
    55         Log.e("MyService", "onStart");
    56         if(intent.getBooleanExtra("s", false)){
    57             Log.e("intent", "偶数");
    58             nitifi.icon = R.drawable.ic_launcher;
    59         }else{
    60             Log.e("intent", "奇数");
    61             nitifi.icon = R.drawable.me;
    62         }
    63         
    64         nm.notify(0, nitifi);
    65     }
    66 
    67     
    68     
    69 }
    package com.test.nitifi;
    
    import android.app.NotificationManager;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.util.Log;
    
    public class MyReceiver extends BroadcastReceiver{
        NotificationManager nm;
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            Log.e("MyReceiver", intent.getAction());
            nm = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
            nm.cancel(intent.getIntExtra("nitifiId", 0));
            Intent it = new Intent(context,MainActivity.class);
            it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(it);
        }
    
        
        
    }
  • 相关阅读:
    mysql的sql执行计划
    JMX
    用 Cobertura 测量测试覆盖率
    javap反汇编的使用
    Java ASM 技术简介
    基于Java Instrument的Agent实现
    浮动的同级盒子顶对齐
    子绝父相布局
    相对定位,绝对定位和固定定位
    嵌套的定位盒子如何居中?
  • 原文地址:https://www.cnblogs.com/bvin/p/2650552.html
Copyright © 2020-2023  润新知