私はサービスを持っています(サービスには をリッスンするブロードキャストレシーバーがありますACTION_BATTERY_CHANGED
)、2つのタイムマーク間の経過時間を計算したいのですが、これは私が持っているものです:
public void onReceive(Context context, Intent intent){
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
long time;
long startTime=0;
if(OldLevel==0){
OldLevel=level;
startTime = System.nanoTime();
}
else{
time=System.nanoTime()-startTime;
startTime=System.nanoTime(); //edited
Log.e("inFFFF","FFFF "+time);// I somehow here get 16243428223995 nanoseconds which are too large because in reality it just take 1-2min.
}
}
できればお願いします: 1. 時間が予想よりも長い理由を教えてください。 2. または、経過時間を計算するためのより良い方法を提案してください。