AndroidのNotification之全方面应用

时间:2021-02-25 06:04:39

主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);
    }

    
    
}