구글링을 하면서 찾아보던중
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.widget.TextView;
public class Main extends Activity {
private TextView contentTxt;
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
// TODO Auto-generated method stub
int level = intent.getIntExtra("level", 0);
contentTxt.setText(String.valueOf(level) + "%");
}
};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
contentTxt = (TextView) this.findViewById(R.id.monospaceTxt);
this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
}
다음과같은 소스를 구해서 사용해보았는데요, 배터리 잔량은 표시가 잘되는데 usb를 꼽거나 빼면 강제종료됩니다.
무엇을 추가해 주어야 하는지요.
@Override
protected void onPause() {
unregisterReceiver(this.mBatInfoReceiver);
super.onPause();
}
onCreate밑에 다음과같이 해주었지만 아직도 에러가 납니다. ㅠㅠ




이 경우에도 적용되는지는 확실하지는 않지만
브로드캐스트리시버(헉헉 -_-;;)을 사용하게 되면 액티비티가 onPause() 될 경우
unregisterReceiver 를 해주어야 합니다. 아니면 뻑납니다...