不使用ipc 实现 Activity与Service双向通信
来源:互联网 发布:php kahlan 编辑:程序博客网 时间:2024/05/28 14:57
//直接上代码 Service :public class UploadPictureService extends Service{ public static final String PATH_KEY = "sdcard_path_list"; private ArrayList<String> picturePaths; private ServiceBinder mBinder; private String TAG = UploadPictureService.class.getName(); public interface IUploadFinishListener { void onUploadFinished(ArrayList<String> jdImgUrls); } public class ServiceBinder extends Binder { IUploadFinishListener callBack; public void keepCallback(IUploadFinishListener cb){ callBack = cb; } public void businessFinished(){ stopSelf(); } } @Nullable @Override public IBinder onBind(Intent intent) { picturePaths = intent.getStringArrayListExtra(PATH_KEY); mBinder = new ServiceBinder(); return mBinder; } @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { picturePaths = intent.getStringArrayListExtra(PATH_KEY); uploadPicture(); return super.onStartCommand(intent, flags, startId); } private void uploadPicture(){ // 在这里做实质性的事情 } @Override public void onDestroy() { super.onDestroy(); }}//Activity.../** * */ private void uploadPictureByService(ArrayList<String> pathStrings){ Intent intent = new Intent(this, UploadPictureService.class); bindService(intent, new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { UploadPictureService.ServiceBinder binder = (UploadPictureService.ServiceBinder) service; binder.keepCallback(new ServiceFinishCallback(binder)); } @Override public void onServiceDisconnected(ComponentName name) { } },0); intent.putExtra(UploadPictureService.PATH_KEY,pathStrings); startService(intent); } static class ServiceFinishCallback implements UploadPictureService.IUploadFinishListener { UploadPictureService.ServiceBinder binder; ServiceFinishCallback(UploadPictureService.ServiceBinder binder) { this.binder = binder; } @Override public void onUploadFinished(ArrayList<String> jdImgUrls) { // //if dispose finished binder.businessFinished(); } }...
阅读全文
0 0
- 不使用ipc 实现 Activity与Service双向通信
- Messenger实现Activity与Service的双向通信
- android service与activity双向通信
- 使用Handler实现Service和Activity之间的双向通信
- 使用Handler实现Service和Activity之间的双向通信
- 使用Messenger进行Activity与Service之间的双向通信
- android中activity与service的双向通信
- 使用 Messenger 来实现Service的双向通信
- Android Service与Activity双向通信的两种方式
- Service与Activity交互之IPC
- Android中通过Messenger与Service实现进程间双向通信
- Android中通过Messenger与Service实现进程间双向通信
- 实现service与activity分离
- android开发之使用Messenger实现service与activity交互
- Android 使用messenger实现service与activity通信
- android 使用binder实现Service与activity进行交互
- Android Service和Activity基于串口蓝牙模块的双向通信
- 与服务service实现双向通迅方法 或叫 Service端和Client端的双向通信
- Markdown基础语法速查
- SQL中使用case when 代替where
- Eclipse 操作手册
- ssm 框架上传图片到服务器
- Hibernate缓存
- 不使用ipc 实现 Activity与Service双向通信
- SpringMVC中@GetMapping和@RequestMapping的区别
- http转https访问
- ELK logstash 学习一
- 2017.6.21
- FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to undefined function __() in
- DataBinding初识
- go json
- layer ui插件显示tips时,修改字体颜色与大小