타이머 소스이구요 다른 액티비티에서 시간을 설정한후 그 값을 받아와서 카운트하는 소스인데요
예를들어 55초라면 0초까지 진행되고 다음화면으로 넘어가는데요
여기서 스마트폰화면이 꺼져있을때는 시간이 진행이 안되게 하려는데요
그냥 다른작업할때나 켜져있을때는 시간이 계속 진행 되구요
어떻게 해야하나요?
<타이머 소스가 화면이 꺼지면 정지하구요 화면이 켜져있으면 계속 진행되게요 다른작업상관없이 화면꺼지고 켜지는 거에 따라서요 > 부탁드립니다. 초보라서요
package park.dongju;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.graphics.PixelFormat;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.content.Context;
import android.content.Intent;
import android.webkit.WebView;
import android.util.Log;
import android.view.Window;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
public class CountActivity extends Activity{
TextView tv;
Handler h = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Window window = this.getWindow();
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
window.setFormat(PixelFormat.TRANSLUCENT);// 화占쏙옙占쏙옙 占싫쇽옙占쏙옙 占쏙옙占쏙옙占쏙옙占쏙옙 占쏙옙占쏙옙
setContentView(R.layout.count);
Bundle bundle = getIntent().getExtras();
int value = bundle.getInt("some_key");
int value2 = bundle.getInt("some_key2");
int time;
tv = (TextView)findViewById(R.id.tv);
tv.setText("value"); // startting from 10.
time = value*60000+ value2*1000;
final MyCounter timer = new MyCounter(time,1000);
timer.start();
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@SuppressLint("NewApi")
public class MyCounter extends CountDownTimer{
public MyCounter(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@SuppressLint("NewApi")
@Override
public void onFinish() {
System.out.println("Timer Completed.");
tv.setText("Timer Completed.");
Intent intent = new Intent(CountActivity.this, Jamgeum1Activity.class);
startActivity(intent);
finish();
//android.os.Process.killProcess(android.os.Process.myPid() );
}
@Override
public void onTick(long millisUntilFinished) {
tv.setText((millisUntilFinished/60000)+"시"+(millisUntilFinished%60000/1000)+"분");
if((millisUntilFinished%60000/1000)==30)
{
Notification.Builder notiBuilder = new Notification.Builder(getApplicationContext());
notiBuilder.setSmallIcon(R.drawable.icon);
notiBuilder.setContentTitle("스마트폰 중독 탈출 앱");
notiBuilder.setContentText("30분 남았습니다.");
Context context = getApplicationContext();
Toast.makeText(context, "30분 남았습니다.", Toast.LENGTH_SHORT).show();
Notification noti = notiBuilder.build();
//------------------------------------------------------------------
// Notify
NotificationManager notiManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notiManager.notify(0, noti);
}
System.out.println("Timer : " + (millisUntilFinished/1000));
}
}
}