Intent.ACTION_BATTERY_CHANGED 이거 이용해서 notification에 배터리 퍼센트 표시해주는거
연습삼아 만드는데 쉬운것같으면서도 초보라 어렵네요 ㅎ
지금 단순한 동작은 되는데 이게 어플을 실행해서 그 액티비티에 있으면 제대로 잘 바뀌는데(notification)
홈키든 백키든 다른화면으로 나가버리면 바뀌지를 않네요 어떤부분이 문제가 있는건가요 br로 바뀌면 notification해주는식으로
코드는 만들어 놨습니다. 책만 좀 보다가 처음 프로그램 만드는거라 개판일겁니다. 조언좀 부탁드립니다

package exam.AndroidFirst;

import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import exam.AndroidFirst.*;

public class AndroidFirst extends Activity {
 static final int NAPNOTI = 1;
    NotificationManager mNotiManager;
    String str;
    int ratio = 0;
    Notification noti = new Notification(R.drawable.icon,
   "Battery ratio",System.currentTimeMillis());
    public void onResume() {
  super.onResume();
  IntentFilter filter = new IntentFilter();
  filter.addAction(Intent.ACTION_BATTERY_CHANGED);
  registerReceiver(mBRBattery, filter);
 } 
   
    public void onPause() {
  super.onPause();       
  unregisterReceiver(mBRBattery);
 }
    BroadcastReceiver mBRBattery = new BroadcastReceiver() {
  int Count = 0;
  public void onReceive(Context context, Intent intent) {
   String action = intent.getAction();
   Count++;
   if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
    onBatteryChanged(intent); 
   }
  }
  public void onBatteryChanged(Intent intent) {
   int plug, status, scale, level;
   String sPlug = "";
   String sStatus = "";
   Intent intent_2 = new Intent(AndroidFirst.this, intent.class);
   
   scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
   level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
   ratio = level * 100 / scale;  // barrtery ratio
   
   noti.number = ratio;
      noti.flags = Notification.FLAG_ONGOING_EVENT;
      //noti.flags = Notification.FLAG_NO_CLEAR;
      
      intent_2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      PendingIntent content = PendingIntent.getActivity(
        AndroidFirst.this, 0, intent_2, 0);
      noti.setLatestEventInfo(AndroidFirst.this, "Battery ratio",
        str, content);
   str = String.format("%d%%",ratio);
   mNotiManager.notify(AndroidFirst.NAPNOTI, noti);
  }
 };
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mNotiManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
       
        Button btn = (Button)findViewById(R.id.start);
        Button btn2 = (Button)findViewById(R.id.end);
       
        btn.setOnClickListener(new Button.OnClickListener() { // battery ratio start
         public void onClick(View v) {
          Toast.makeText(AndroidFirst.this, "HI!", 0).show();
          
          noti.number = ratio;
          noti.flags = Notification.FLAG_ONGOING_EVENT;
          //noti.flags = Notification.FLAG_NO_CLEAR;
          
          Intent intent = new Intent(AndroidFirst.this, intent.class);
          intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          PendingIntent content = PendingIntent.getActivity(
            AndroidFirst.this, 0, intent, 0);
          noti.setLatestEventInfo(AndroidFirst.this, "Battery ratio",
            str, content);
          
          mNotiManager.notify(AndroidFirst.NAPNOTI, noti);
         }
        });  
        btn2.setOnClickListener(new Button.OnClickListener() { // cancel button
         public void onClick(View v) {
          Toast.makeText(AndroidFirst.this, "BYE!", 0).show();
          mNotiManager.cancel(AndroidFirst.NAPNOTI);
          finish();
         }
        });  
    }
}