Slices 란?

Android's new approach for remote content

  • Tempalted
  • Interactive
  • Updateable
    Backwards-compatible through KitKat/API 19+ (95% of devices)

The Goal?

Reusable API to generalize for how we present remote app content in Android
Slice를 하나의 재사용 가능한 API 로 만들어서 안드로이드 내에서 원격 컨텐츠를 일반적으로 사용할 수 있게 하기 위함

Slice 사용

Define your SliceProvider in AndroidManifest

    ...
    <!-- Slices definition -->
    <provider anroid:name=".MySliceProvider"
        android:authority="com.example.slicesample"
        android:exported="true"
    </provider>
    ...

Implement your SliceProvider

    class MySliceProvider : SliceProvider() {
        fun onBindSlice(uri: Uri) : Slice ? {
            if(uri.path == "/wifi") {
                rturn buildWifiSlice(uri)
            } else if(uri.path == "/alarms") {
                rturn buildAlarmsSlice(uri)
            } else if(uri.path == "/nightlight") {
                rturn buildNightLightSlice(uri)
            }
            ...
            return null
        }

        ...
        fun buildWifiSlice(sliceUri: uri) : slice {
            val listBuilder =
                ListBuilder(getContext(), sliceUri, INFINITY)

            val row = RowBuilder(listBuilder).setTitle("Wi-fi");

            if(!isWifiStateLoaded) {
                loadWifiState()
                row.setSubtitle(null, true /* isLoading */)
                    .addEndItem(null, true /* isLoading */)
            } else {
                ...
            }

            listBuilder.addRow(row)
            return listBuilder.build()
        }
        ...
    }

'Android > Android Develop' 카테고리의 다른 글

WorkManager  (0) 2019.07.07
Android Navigation  (0) 2019.07.07
Instant App  (0) 2019.07.07
Android Notification 개발시 주의사항  (0) 2019.07.07

+ Recent posts