次のコードに4つの整数があり、そのうちの1つが「レベル」であることがわかりません。コードのどこかでその値を変更して後で取得しようとすると、デフォルト値が取得されるので、何かありますか。このコードが間違っているか、何かが恋しいですか
public class Battery_Info extends Activity {
int scale = -1;
int level = -1;
int voltage = -1;
int temp = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_battery__info);
this.setTitle("Battery Information");
IntentFilter filter=new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
final NotificationManager ntifymgr=(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
BroadcastReceiver receive=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
scale=intent.getIntExtra(BatteryManager.EXTRA_SCALE,-1);
level=intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
voltage=intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
temp=intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
TextView t=(TextView)findViewById(R.id.textView5);
t.setText(""+scale);
t=(TextView)findViewById(R.id.textView6);
t.setText(""+level, BufferType.EDITABLE);
t=(TextView)findViewById(R.id.textView7);
t.setText(""+voltage);
t=(TextView)findViewById(R.id.textView8);
t.setText(""+temp);
}
};
registerReceiver(receive, filter);
final int Notif_ID=56734;
Notification note= new Notification(R.drawable.ic_launcher, "Battery Notification", System.currentTimeMillis());
note.flags=Notification.FLAG_ONGOING_EVENT;
PendingIntent intent=PendingIntent.getActivity(this, 0, new Intent(this,Battery_Info.class),PendingIntent.FLAG_CANCEL_CURRENT);
note.setLatestEventInfo(this, "BatPer", "Battery Level: "+level+"%", intent);
ntifymgr.notify(Notif_ID, note);
}
levelの値を変更すると変更され、textviewに表示されますが、通知で使用するとデフォルト値が表示されます