public class UpgradeService extends Service {
private Thread thread;
private Intent intent;
private int progress;
private Boolean isStop;
public class MyBinder extends Binder{
public void callPauseUpgrade(){
pauseUpgrade();
}
public void callStopUpgrade() {
stopUpgrade();
}
}
private void stopUpgrade() {
progress = 0;
isStop = false;
intent.putExtra("progress",progress);
sendBroadcast(intent);
}
@Override
public void onCreate() {
super.onCreate();
progress = 0;
isStop = true;
intent = new Intent();
thread = new Thread(new Runnable() {
@Override
public void run() {
while(isStop){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
progress = progress +5;
intent.putExtra("progress",progress);
intent.setAction("UPGRADE_ACTION");
sendBroadcast(intent);
if(progress>=100) break;
}
}
});
thread.start();
}
private void pauseUpgrade() {
//TODO:Pause the upgrade
Toast.makeText(getApplicationContext(),"暂停",Toast.LENGTH_SHORT).show();
isStop = false;
}
@Override
public IBinder onBind(Intent intent) {
return new MyBinder();
}
}
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button mBtStart;
private Button mBtStop;
private Button mBtPause;
private ProgressBar mPbProgress;
private UpgradeService.MyBinder myBinder;
private boolean isBound;
private UpgradeReceiver upgradeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("UPGRADE_ACTION");
upgradeReceiver = new UpgradeReceiver();
registerReceiver(upgradeReceiver,intentFilter);
initView();
initEvent();
}
public class UpgradeReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
mPbProgress.setProgress(intent.getIntExtra("progress",0));
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(upgradeReceiver);
}
private void initEvent() {
mBtPause.setOnClickListener(this);
mBtStart.setOnClickListener(this);
mBtStop.setOnClickListener(this);
}
private void initView() {
mBtPause = (Button) findViewById(R.id.bt_pause);
mBtStart = (Button) findViewById(R.id.bt_start);
mBtStop = (Button) findViewById(R.id.bt_stop);
mPbProgress = (ProgressBar) findViewById(R.id.pb_progress);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.bt_pause:
if(isBound&&myBinder!=null){
myBinder.callPauseUpgrade();
}
break;
case R.id.bt_start:
bindService(new Intent(MainActivity.this,UpgradeService.class),conn,BIND_AUTO_CREATE);
break;
case R.id.bt_stop:
if(isBound) {
myBinder.callStopUpgrade();
unbindService(conn);
isBound = false;
}
break;
}
}
private ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
if(service != null){
myBinder = (UpgradeService.MyBinder) service;
isBound = true;
}
}
@Override
public void onServiceDisconnected(ComponentName name) {
isBound = false;
}
};
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有