[置顶] Android Service通过Handler与Activity交互
2017-03-03 17:49
453 查看
activity代码
service代码
package com.app.yr.jnidemo; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Messenger; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btnTest).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { handler.post(new Runnable() { @Override public void run() { Intent intent = new Intent(MainActivity.this, HandlerService.class); intent.putExtra("messenger", new Messenger(handler)); startService(intent); } }); } }); } private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: ((TextView) findViewById(R.id.tvHandler)).setText("this is a message from service"); break; } } }; }
service代码
package com.app.yr.jnidemo; import android.app.Service; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.os.Message; import android.os.Messenger; import android.os.RemoteException; import android.support.annotation.Nullable; public class HandlerService extends Service { private Messenger mMessenger; private Handler mHandler = new Handler(); @Nullable @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { if (mMessenger == null) { mMessenger = (Messenger) intent.getExtras().get("messenger"); } mHandler.postDelayed(new Runnable() { @Override public void run() { Message message = Message.obtain(); message.what = 1; try { mMessenger.send(message); } catch (RemoteException e) { e.printStackTrace(); } } }, 10000); return super.onStartCommand(intent, flags, startId); } }
相关文章推荐
- Android中Activity和Service简单交互(通过广播机制)
- Android Service 通知Activity更新界面的方法研究|Service通过Broadcast更新UI
- android Service之二:和Activity交互的本地服务
- Android开发之Service与Activity数据交互(源代码分享)
- 第四章 Android开发三大基石—Activity、Service和Handler(3)
- android service与Activity的交互方式
- Android中Activity和Service简单交互的例子
- 关于Android中Service与Activity的信息交互
- Android Service与Activity之间通信:通过Binder对象、Broadcast广播
- android Service Activity三种交互方式(付源码)
- 第四章 Android开发三大基石—Activity、Service和Handler(2)
- android Service之一:不需和Activity交互的本地服务
- Android中Activity与Service如何通过广播交换复杂对象数据
- android service的使用(三)- 与activity的交互
- android Service Activity三种交互方式(源码见原网站)
- android Service之一:不需和Activity交互的本地服务
- Android Service 通知Activity更新界面的方法研究|Service通过Broadcast更新UI
- 通过service和handler实现Notification在后台打开activity
- Mono For Android 通过Service传递消息,在消息栏打开Activity的解决方案
- android service 通过broadcast通知Myreceiver 启动activity