# RemoteCallable

# RemoteCallable

Artifact:[androidx.remotecallback:remotecallback](https://developer.android.com/jetpack/androidx/releases/remotecallback)  
[View Source](https://cs.android.com/search?q=file:androidx/remotecallback/RemoteCallable.java+class:androidx.remotecallback.RemoteCallable)  
Added in[1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/remotecallback#1.0.0-alpha03)  
Deprecated in[1.0.0-alpha03](https://developer.android.com/jetpack/androidx/releases/remotecallback#1.0.0-alpha03)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/remotecallback/RemoteCallable "View this page in Java")

<br />

```
@Retention(value = RetentionPolicy.SOURCE)
@Target(value = ElementType.METHOD)
annotation RemoteCallable
```

<br />

*** ** * ** ***

| **This annotation is deprecated.**   
|
| Slice framework has been deprecated, it will not receive any updates moving forward. If you are looking for a framework that handles communication across apps, consider using[android.app.appsearch.AppSearchManager](https://developer.android.com/reference/android/app/appsearch/AppSearchManager.html).

Used to tag a method as callable using[createRemoteCallback](https://developer.android.com/reference/kotlin/androidx/remotecallback/CallbackReceiver#createRemoteCallback(android.content.Context)).

This is only valid on methods on concrete classes that implement[CallbackReceiver](https://developer.android.com/reference/kotlin/androidx/remotecallback/CallbackReceiver). The method must have return type RemoteCallback, and should return[LOCAL](https://developer.android.com/reference/kotlin/androidx/remotecallback/RemoteCallback#LOCAL()).

At compile time Methods tagged with[RemoteCallable](https://developer.android.com/reference/kotlin/androidx/remotecallback/RemoteCallable)have hooks generated for them. The vast majority of the calls are done through generated code directly, so everything except for class names can be optimized/obfuscated. Given that remote callbacks are only accessible on platform components such as receivers and providers, they are already generally not able to be obfuscated.  

|                                                                           See also                                                                            |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [createRemoteCallback](https://developer.android.com/reference/kotlin/androidx/remotecallback/CallbackReceiver#createRemoteCallback(android.content.Context)) |   |