| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package basepedo.ui;
- 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.view.Menu;
- import android.view.MenuItem;
- import android.widget.TextView;
- import com.xzjmyk.pm.activity.R;
- import com.xzjmyk.pm.activity.ui.MainActivity;
- import com.xzjmyk.pm.activity.ui.base.BaseActivity;
- import basepedo.config.Constant;
- import basepedo.service.StepService;
- public class MyPedometerActivity extends BaseActivity implements Handler.Callback {
- //循环取当前时刻的步数中间的间隔时间
- private long TIME_INTERVAL = 500;
- private TextView text_step;
- private Messenger messenger;
- private Messenger mGetReplyMessenger = new Messenger(new Handler(this));
- private Handler delayHandler;
- ServiceConnection conn = new ServiceConnection() {
- @Override
- public void onServiceConnected(ComponentName name, IBinder service) {
- try {
- messenger = new Messenger(service);
- Message msg = Message.obtain(null, Constant.MSG_FROM_CLIENT);
- msg.replyTo = mGetReplyMessenger;
- messenger.send(msg);
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onServiceDisconnected(ComponentName name) {
- }
- };
- @Override
- public boolean handleMessage(Message msg) {
- switch (msg.what) {
- case Constant.MSG_FROM_SERVER:
- // 更新界面上的步数
- text_step.setText(msg.getData().getInt("step") + "\t步");
- delayHandler.sendEmptyMessageDelayed(Constant.REQUEST_SERVER, TIME_INTERVAL);
- break;
- case Constant.REQUEST_SERVER:
- try {
- Message msg1 = Message.obtain(null, Constant.MSG_FROM_CLIENT);
- msg1.replyTo = mGetReplyMessenger;
- messenger.send(msg1);
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- break;
- }
- return false;
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_pedometer);
- init();
- }
- private void init() {
- text_step = (TextView) findViewById(R.id.text_step);
- delayHandler = new Handler(this);
- }
- @Override
- protected void onStart() {
- super.onStart();
- setupService();
- }
- private void setupService() {
- Intent intent = new Intent(this, StepService.class);
- bindService(intent, conn, Context.BIND_AUTO_CREATE);
- startService(intent);
- }
- @Override
- protected void onResume() {
- super.onResume();
- }
- // @Override
- // public void onBackPressed() {
- // moveTaskToBack(true);
- // super.onBackPressed();
- // }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- unbindService(conn);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- return super.onCreateOptionsMenu(menu);
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- if (item.getItemId() == android.R.id.home) {
- startActivity(new Intent(this, MainActivity.class));
- finish();
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- public void onBackPressed() {
- startActivity(new Intent(mContext, MainActivity.class));
- super.onBackPressed();
- finish();
- }
- }
|