package com.tencent.onesecurity.ui.activity; import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; import android.widget.TextView; import com.tencent.onesecurity.R; import com.tencent.onesecurity.service.UpdateService; public class UpdateActivity extends Activity{ private Messenger mServiceMessenger; Handler mHandler = new ClientHandler(); private final Messenger mMessenger = new Messenger(mHandler); private ServiceConnection mConnection = new Connection(); private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.update_layout); Intent intent = new Intent(this,UpdateService.class); bindService(intent, mConnection, Context.BIND_AUTO_CREATE); tv = (TextView)this.findViewById(R.id.iv_progess); } @Override protected void onDestroy() { this.unbindService(mConnection); super.onDestroy(); } private class ClientHandler extends Handler { @Override public void handleMessage(Message msg) { switch (msg.what) { case UpdateService.RESRESH_COUNT: tv.setText(msg.arg1 + "/" + msg.arg2); break; case UpdateService.MESSAGE_UPDATE_FINISH: Intent intent = new Intent(UpdateActivity.this,MainActivity.class); UpdateActivity.this.startActivity(intent); UpdateActivity.this.finish(); default: super.handleMessage(msg); } } } private class Connection implements ServiceConnection{ public void onServiceConnected(ComponentName className, IBinder service) { mServiceMessenger = new Messenger(service); try { Message msg = Message.obtain(null,UpdateService.MESSAGE_SAY_HELLO); msg.replyTo = mMessenger; mServiceMessenger.send(msg); } catch (RemoteException e) { } } public void onServiceDisconnected(ComponentName className) { mServiceMessenger = null; } } }