首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android源码框架分析

    Android面试题:bindService获取代理是同步还是异步

    如果bindService是一个同步过程,那么Log应该如下: TAG onServiceConnected ... TAG end ... TAG onServiceConnected ... 也并不会执行,onServiceConnected什么时候执行呢? --通过binder 回到APP端的onServiceConnected--> c.conn.connected(r.name, service); } catch (Exception e) { 到这里,onServiceConnected才会被回调,不过,至于Service端那两条消息什么时候执行,谁也不能保证,也许因为特殊原因,那两条消息永远不被执行,那onServiceConnected

    1.6K20发布于 2018-06-29
  • 来自专栏醉梦轩

    UIAutomator2.0和AccessibilityService实现分析

    onServiceConnected(mComponentName, mService); } }); userState.mUiAutomationService = this; } return false; } bindLocked会发送一个异步消息,调到onServiceConnected回调。 @Override public void onServiceConnected(ComponentName componentName, IBinder service) { synchronized connection); mCallback.init(mConnectionId, windowToken); mCallback.onServiceConnected () { AccessibilityService.this.onServiceConnected(); } @Override

    4.3K11发布于 2020-01-02
  • 来自专栏全栈程序员必看

    Android中bindService的使用及Service生命周期

    在本例中,在onServiceConnected方法中,调用者ActivityA通过binder的getService方法获取到了与其对应的Service,然后我们就可以直接调用Service的公共方法以达到使用 创建ServiceConnection类型的实例,并重写其onServiceConnected方法和onServiceDisconnected方法。 2. 当Android执行onServiceConnected回调方法时,我们可以通过IBinder实例得到Service的实例对象或直接调用binder的公共方法,这样就实现了client与Service的连接 在得到了IBinder实例之后,Android会执行client端ServiceConnection中的onServiceConnected方法,在该方法中我们会得到IBinder实例,并通过该IBinder 并将其作为参数传入ActivityB的ServiceConnection的onServiceConnected方法中,标志着ActivityB与TestService建立了绑定连接,此时有两个客户单client

    1.4K10编辑于 2022-06-27
  • 来自专栏安卓随笔

    Android进程间通信(二)- Messenger

    private ServiceConnection mConnect = new ServiceConnection() { @Override public void onServiceConnected (ComponentName name, IBinder service) { Log.i(TAG,"onServiceConnected "); mService ServiceConnection 对象 拿到服务器返回的IBinder对象,通过这个初始化Messenger对象,就可以发送消息 运行结果 xxxx.messagertest I/MainActivity: onServiceConnected super.handleMessage(msg); } } 客户端 @Override public void onServiceConnected (ComponentName name, IBinder service) { Log.i(TAG,"onServiceConnected "); mService

    78020编辑于 2022-12-13
  • 来自专栏全栈程序员必看

    bindService:绑定本地服务和远程服务示例

    static class TestLocalConenction implements ServiceConnection { @Override public void onServiceConnected (ComponentName componentName, IBinder iBinder) { Log.d(TAG,"onServiceConnected:iBinder=" mServiceBinder=com.example.maureen.mytestbindservice.TestLocalService$TestLocalServiceBinder@3ef6efd onServiceConnected (ComponentName componentName, IBinder iBinder) { Log.d(TAG,"onServiceConnected:iBinder=" 函数中iBinder是Binder代理端: onServiceConnected:iBinder=android.os.BinderProxy@6ff13d8 即Activity调用到TestRemoteService

    1.1K20编辑于 2022-09-06
  • 来自专栏全栈程序员必看

    【Service】bindService:绑定本地服务和远程服务示例[通俗易懂]

    static class TestLocalConenction implements ServiceConnection { @Override public void onServiceConnected (ComponentName componentName, IBinder iBinder) { Log.d(TAG,"onServiceConnected:iBinder=" mServiceBinder=com.example.maureen.mytestbindservice.TestLocalService$TestLocalServiceBinder@3ef6efd onServiceConnected (ComponentName componentName, IBinder iBinder) { Log.d(TAG,"onServiceConnected:iBinder=" + iBinder); 函数中iBinder是Binder代理端: onServiceConnected:iBinder=android.os.BinderProxy@6ff13d8 即Activity调用到TestRemoteService

    85420编辑于 2022-11-15
  • 来自专栏全栈程序员必看

    Android 绑定服务 bindService[通俗易懂]

    调用时,必须提供ServiceConnection的实现,后者会监控与服务的连接,当Android系统创建客户端与服务之间的连接时,会对ServiceConnection回调onServiceConnected public IBinder onBind(Intent arg0) { return sBinder; } 客户端绑定到服务步骤: 1.实现ServiceConnection,重写两个回调方法:onServiceConnected 系统会在与服务的连接以外中断(或者随着activity 的生命周期stop)时调用该方法,当客户端取消绑定的时候,不会回调该方法 2.调用bindService(),传递ServiceConnection 3.当系统调用onServiceConnected ComponentName arg0) { mBound = false; } }; } 上例说明客户端如何使用ServiceConnection的实现和onServiceConnected . */ private ServiceConnection mConnection = new ServiceConnection() { public void onServiceConnected

    4.5K20编辑于 2022-06-28
  • 来自专栏全栈程序员必看

    bindService流程详解

    创建连接信息; 将连接信息保存到mServiceConnections中; 如bind的flag包含BIND_AUTO_CREATE,则先尝试启动Service; 如此intent未被连接过,直接建立连接,回调onServiceConnected ; Service未被bind过,需先调用onBind后,再回调onServiceConnected。 } if (dead) { mConnection.onBindingDied(name); } // 新连接,回调onServiceConnected = null) { mConnection.onServiceConnected(name, service); } } private 新连接建立完成,回调ServiceConnection.onServiceConnected 至此,一次bind连接已经完成,之后启动方就可以通过连接成功后返回的IBinder对象与Service进行交互了

    66820编辑于 2022-08-26
  • 来自专栏mukekeheart的iOS之旅

    android service 学习(下)

    = null){ mediaPlayer.stop(); mediaPlayer.release(); } } } 当客户端应用连接到这个Service时,onServiceConnected 参看下面的客户端onServiceConnected方法: private ServiceConnection sc = new ServiceConnection() { @Override musicService = null; Log.d(TAG, "in onServiceDisconnected"); } @Override public void onServiceConnected IBinder service) { musicService = IMusicControlService.Stub.asInterface(service); Log.d(TAG, "in onServiceConnected

    63390发布于 2018-02-27
  • 来自专栏java初学

    android入门 — Service

    当访问者与Service之间连接成功之后会回调ServiceConnection对象的onServiceConnected(ComponentName name, IBinder service)方法, ServiceConnection对象的onServiceConnected()方法中有一个IBinder对象,这个对象可实现与被绑定的Service之间的通信。 private ServiceConnection conn = new ServiceConnection() { @Override public void onServiceConnected (ComponentName name, IBinder service) { //连接失败 Log.i("Activity", "onServiceConnected

    69370发布于 2018-05-14
  • 来自专栏独行猫a的沉淀积累总结

    使用Android的Service实现后台定时检测并重启应用

    . /** * ServiceConnection代表与服务的连接,它只有两个方法, * onServiceConnected和onServiceDisconnected, */ @Override public void onServiceConnected(ComponentName name, IBinder service) { 它只有两个方法, onServiceConnected和onServiceDisconnected,其含义如下: onServiceConnected(ComponentName name, IBinder 此时Application的ServiceConnection.onServiceConnected()被调用并返回MyBinder对象。

    1.8K20编辑于 2022-01-07
  • 来自专栏中国Android研究院

    自动化篇 - 黑客们使用的自动化方案,很多人还不知道

    Override public void onInterrupt() { //服务断开 } @Override protected void onServiceConnected () { super.onServiceConnected(); //服务开启 } } onAccessibilityEvent(event) 可以拿到对拿到目标应用配置文件中配置的事件类型 onServiceConnected() 方法在无障碍服务被开启的同时,会被触发。 onInterrupt() 方法在服务被终端的时候触发。

    2.7K40发布于 2019-08-28
  • 来自专栏图像识别与深度学习

    Bluetooth4_3运行流程(连接发射器SN00000009)

    方法onServiceConnected:(1)BluetoothLeServicem.initialize()获取BluetoothManager和mBluetoothAdapter初始化成功再执行( bindService是异步调用和Service进行绑定, 如果绑定成功, 则会调用ServiceConnection的onServiceConnected。 在OnBind()方法中需返回一个IBinder实例,不然onServiceConnected方法不会调用。 BluetoothLeService 调用 bindService 会启动 Service,Service.onBind如果返回null,不会连接上 Service,因此 ServiceConnection.onServiceConnected , Context.BIND_AUTO_CREATE);->新建了BindService对象->新建了MyBinder对象->onBind()函数  -----传递MyBinder对象------->onServiceConnected

    1.2K60发布于 2018-05-22
  • 来自专栏用户9379088的专栏

    Android AIDL 使用教程

    intent-filter> </service> 复制代码 4 客户端调用 IPC 方法 当客户端(如 Activity)调用 bindService() 以连接此服务时,客户端的 onServiceConnected 当客户端在 onServiceConnected() 回调中收到 IBinder 时,它必须调用 IRemoteService.Stub.asInterface(service),以将返回的参数转换成 ServiceConnection() { // Called when the connection with the service is established public void onServiceConnected onServiceDisconnected"); iRemoteService = null; } @Override public void onServiceConnected (ComponentName name, IBinder service) { Log.d(TAG, "onServiceConnected"); iRemoteService

    2.5K32编辑于 2022-07-29
  • 来自专栏陶士涵的菜地

    [android] 绑定方式开启服务&调用服务的方法

    ServiceConnection对象中间人不能为空,选项BIND_AUTO_CREATE,如果不存在就创建 ServiceConnection类是个接口,创建一个内部类MyConn实现这个接口 两个实现方法onServiceConnected ()方法和onServiceDisconnected()方法 在绑定服务的时候会调用SingService对象的onBind()方法,在这个方法里面会返回一个IBinder对象 在onServiceConnected 联系代理人的纽带 private class MyConn implements ServiceConnection { @Override public void onServiceConnected

    1.1K20发布于 2019-09-10
  • 来自专栏Linux内核深入分析

    Android 四大组件学习之Service三

    public class MyServiceConnection implements ServiceConnection { @Override//当连接服务成功后调用 public void onServiceConnected (ComponentName arg0, IBinder arg1) { // TODO Auto-generated method stub Log.i("MyActivity", "onServiceConnected 其中,OnServiceConnected是当调用者与服务连接成功后调用,注意的是OnserviceDisconnected不是调用者与服务断开时后调用,而是由于某种原因异常终止等才调用 参数3:指定绑定时是否自动创建

    33020编辑于 2022-05-08
  • 来自专栏刘晓杰

    Android四大组件之一Service

    类实例来完成下列操作之一 包含客户端能调用的公共方法 返回当前Service实例,其中包含客户端能调用的方法 返回服务管理的其他类的实例 (2)从onBind()回调方法中返回Binder实例 (3)在客户端,从onServiceConnected super.onStop(); if(bound){ bound = false; unbindService(sc); } } //实现ServiceConnection,这需要重写onServiceConnected onServiceDisconnected()两个回调函数 private ServiceConnection sc = new ServiceConnection(){ @Override public void onServiceConnected new ServiceConnection(){ @Override //客户端使用IBinder来实例化Messenger,然后使用它来发送Message对象到服务 public void onServiceConnected messenger = null; bound = false; } }; } 3.绑定到服务 如果需要从客户端绑定服务,需要完成如下操作: 实现ServiceConnection,这需要重写onServiceConnected

    95130发布于 2019-03-01
  • 来自专栏Android Note

    Kotlin For Android 笔记(三)

    { @Override public void onServiceDisconnected(ComponentName name) { //... } @Override public void onServiceConnected { } override fun onServiceConnected(name: ComponentName?,service: IBinder?)

    74420发布于 2019-03-04
  • 来自专栏米扑专栏

    Android Service 服务(三)—— bindService与remoteService

    break; } } private ServiceConnection sc = new ServiceConnection() { @Override public void onServiceConnected = null){ mediaPlayer.stop(); mediaPlayer.release(); } } } 客户端(Activity)应用连接到这个Service时,onServiceConnected 参看下面的客户端onServiceConnected方法: Activity public class PlayRemoteMusic extends Activity implements OnClickListener e.printStackTrace(); } } private ServiceConnection sc = new ServiceConnection() { @Override public void onServiceConnected intent,然后bindService(intent, sc, Context.BIND_AUTO_CREATE);绑定服务 2、 Activity(客户端)中,通过ServiceConnection()重载onServiceConnected

    2.7K30发布于 2019-02-19
  • 来自专栏码客

    Android Service的使用

    private class PenConn implements ServiceConnection { @Override public void onServiceConnected onServiceDisconnected(ComponentName name) { Log.d("bindLog","unbind"); } } } 绑定成功后就会调用onServiceConnected

    58420发布于 2019-10-22
领券