`

Android 远程回调

阅读更多

1.点击button 发送Handler1 Message  收到消息  开启线程进行处理

2.收到消息 后调用已经绑定的 mService   mService.sendMail()方法

  mService.sendMailAlarm(SEND_MAIL_TYPE,subject,body.toString()); --Activity类

 

 

Service类

  private final IRemoteService.Stub mBinder = new IRemoteService.Stub() {

 

 public void sendMail(int type, String subjectText, String sendText)
                throws RemoteException {
            Constant.Log("sendMailAlarm", "RunKKKKKK");
            new SendMailAlarmMsgThread(type, subjectText, sendText).start();
        }



 

3 。SendMailAlarmMsgThread  处理完发送 Service Handler2 消息

 

4. 处理接受到的信息后 回调函数调用

Service类

private final RemoteCallbackList<IRemoteServiceCallback> mCallbacks = new RemoteCallbackList<IRemoteServiceCallback>();

 

private void _makeSendMailResultCallbacksWork(int result) {
        Constant.Log("RemoteService", "_makeSendMailResultCallbacksWork");
        // Broadcast to all clients the new value.
        Constant.Log("onSendMailReturn", "RunKKKKKK");
        try {
            final int N = mCallbacks.beginBroadcast();
            for (int i = 0; i < N; i++) {
                try {
                    mCallbacks.getBroadcastItem(i).onSendMailReturn (result);
                } catch (RemoteException e) {
                    Constant.exception(e);
                }
            }
            mCallbacks.finishBroadcast();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 

onSendMailReturn  

在Activity 类中实现

 

 

  private IRemoteServiceCallback mCallback = new IRemoteServiceCallback.Stub() {

     
        @Override
        public void onSetPowerStatusReturn(String arg0, String arg1) throws RemoteException {
            // TODO Auto-generated method stub

        }

        @Override
        public void onSendMailReturn(int arg0) throws RemoteException {
            // TODO Auto-generated method stub
            LogOut("call method : onSendMailReturn()---" + arg0);
            // if (!isClickMailBtn) return ;
            // isClickMailBtn = false ;
            switch (arg0) {
                case 0:
                    mHandler.removeMessages(MAIL_RECEIVE_SUCCESS_RESULT_ORDER);
                    mHandler.sendEmptyMessage(MAIL_RECEIVE_SUCCESS_RESULT_ORDER);

                    break;
                case 1:
                    mHandler.removeMessages(MAIL_RECEIVE_FAILURE_RESULT_ORDER);
                    mHandler.sendEmptyMessage(MAIL_RECEIVE_FAILURE_RESULT_ORDER);
                    break;
                default:
                    break;
            }
        }
    };

 处理完后发送Handler1 消息 更新画面

 

 

耗时操作UI更行超过5秒!

 

 

Service  参考http://hi.baidu.com/xtlp/blog/item/e6e18810ad6c030c213f2eaf.html 

本地服务和远程服务

 

 

Android 监听事件 一旦监听一直会有守护线程监听。

 

 

 

分享到:
评论

相关推荐

    Android 远程Service调用实例

    客户端通过`bindService()`方法连接到远程Service,并实现`IService`接口的回调,以处理Service返回的数据。 ```java public class MainActivity extends AppCompatActivity { private IService mService; @...

    Android在Android远程上传以及下载图片---XFire框架.zip

    在上传或下载的`enqueue`回调中,可以添加自定义的`ProgressListener`,实时更新进度。同时,`onFailure`方法用于捕获并处理网络错误。 5. **缓存策略** XFire支持配置缓存策略,对于图片下载,可以设置缓存到本地...

    测试可用的android远程语音识别实例

    5. **处理识别结果**:当语音识别服务返回结果时,会通过`onActivityResult()`回调。开发者需要在此处解析返回的Intent,获取`RecognizerIntent.EXTRA_RESULTS`中的识别文本。 6. **音频录制**:在进行语音识别前,...

    基于android的远程视频监控系统 附完整源码.zip

    1. Android端的Camera初始化和预览回调。 2. 图像编码和网络发送的逻辑。 3. 服务器端的Socket监听和数据接收处理。 4. 如有解码和播放功能,还应关注相应的解码库和播放器的实现。 总之,基于Android的远程视频...

    Android远程服务机制剖析.pdf

    2. 绑定模式:Service通过bindService启动,启动后回调onBind方法,返回一个Ibinder接口实例给客户端。客户端可以调用Service的方法,只要连接存在,Service就会继续运行。绑定模式下,Service可以将自己的功能封装...

    android远程控制(PCRat源码)

    以上是Android PCRat源码中可能涉及的主要知识点,通过分析和理解这些内容,爱好者可以深入了解Android远程控制的原理,并可能应用于安全测试、漏洞挖掘、应用开发等多个领域。然而,务必注意,此类工具的使用必须...

    Android 在Android远程上传以及下载图片---XFire框架.zip

    本项目源码以"Android 在Android远程上传以及下载图片---XFire框架.zip"为标题,旨在教授如何利用XFire框架来实现这一功能。XFire是一款轻量级的Java库,专门用于构建RESTful Web服务,它简化了HTTP通信,使Android...

    Android 在Android远程上传以及下载图片---XFire框架-IT计算机-毕业设计.zip

    本项目以“Android在Android远程上传以及下载图片---XFire框架”为主题,提供了一个Android应用源码的开发Demo,适用于毕业设计学习和论文参考。通过这个项目,我们可以深入理解Android应用中图片的网络传输处理,...

    Android案例-远程调用支付宝.zip

    6. **结果回调**:当用户在支付宝客户端完成支付后,支付宝会回调到我们在服务中指定的异步处理接口,我们可以通过监听这个回调来获取支付结果,然后更新应用的状态,如显示支付成功或失败的消息。 7. **安全性考虑...

    Android_远程service

    5. **处理回调**:当服务端处理完客户端的请求后,通常会通过回调接口通知客户端操作结果。客户端需要实现这个接口,以便接收服务端的响应。 6. **解除绑定**:在不再需要使用服务时,客户端应调用`unbindService()...

    Android程序研发源码Android 远程登录含有loading登录效果源码.zip

    请求完成后,通过回调函数更新UI,比如隐藏loading动画,显示登录成功或失败的提示。 7. **错误处理**:良好的错误处理机制是必备的,包括网络错误、服务器错误、解析错误等。源码中应包含错误处理代码,以便在出错...

    Android 在Android远程上传以及下载图片-XFire框架.rar

    以下是对XFire框架在Android远程图片操作中的应用进行的详细解析。 **XFire框架介绍** XFire框架是基于Java的OkHttp库构建的,提供了更友好的API,便于Android开发者进行网络通信。它支持异步和同步请求,同时包含...

    远程监测系统 android

    综上所述,构建一个Android远程监测系统涉及网络编程、数据解析、用户界面设计、安全策略以及性能优化等多个方面。开发者需要对这些技术有深入理解,并能够灵活运用到实际项目中,以提供稳定、高效且用户体验良好的...

    Android远程登录含有loading登录效果~~完整代码和超级详细注释.zip

    加载指示器可能使用了ProgressBar或者CircleIndicator等组件,结合AsyncTask或者Retrofit的回调函数进行控制。 项目中提供的"超级详细注释"对学习和理解代码非常有帮助。注释应该涵盖了关键代码块的功能解释、变量...

    Android客户端+JavaWeb服务器远程登入

    - **异步处理**:Android客户端可以使用AsyncTask或Retrofit的异步回调处理登录请求,避免阻塞UI线程。 通过上述知识点的实施,我们可以构建出一个功能完善的远程登录系统,实现Android客户端与JavaWeb服务器之间...

    Linker,轻量级android库,用于突出显示textview的各个部分,带有可选回调。.zip

    3. **可选回调**:Linker库允许设置回调函数,当用户点击了高亮的部分时,回调函数会被触发,这为开发者提供了实现更多交互逻辑的可能性,如跳转到其他页面、执行搜索等。 4. **简单易用**:Linker库的API设计简洁...

    Android源码——远程视频监控程序源码.7z

    7. **事件处理和回调**:处理用户的操作,如点击按钮,以及网络连接状态变化、视频流的接收和解码完成等事件,都需要编写相应的回调函数。 8. **性能优化**:由于视频流的数据量大,对内存和CPU的消耗较高,因此...

    Android 远程登录含有loading登录效果源码.rar

    这些库简化了HTTP请求的处理,并提供了回调机制来处理响应,通常用于登录验证。 3. **JSON解析**:登录请求通常需要发送用户名和密码等数据,服务器返回的通常是JSON格式的响应。Android中可以使用Gson或Jackson库...

Global site tag (gtag.js) - Google Analytics