> For the complete documentation index, see [llms.txt](https://docs.mapbox.com/android/search/llms.txt)

# Search history

This example does not contain a UI. Results will be logged in Android Studio.

> **Note**
> 
> This example is a part of the [Search SDK for Android sample app](https://github.com/mapbox/mapbox-search-android). You can find the values for all referenced resources in the [`res`](https://github.com/mapbox/mapbox-search-android/tree/main/MapboxSearch/sample/src/main/res) directory. For example, see [`res/values/strings.xml`](https://github.com/mapbox/mapbox-search-android/tree/main/MapboxSearch/sample/src/main/res/values/strings.xml) for `R.string.*` references used in this example. The dependencies can be found [here.](https://github.com/mapbox/mapbox-navigation-android-examples/blob/main/app/build.gradle) The examples use View binding. [See setup documention if necessary.](https://developer.android.com/topic/libraries/view-binding)

**Java**

Title: `MainActivity.java`

[View on GitHub](https://github.com/mapbox/mapbox-search-android/tree/main/MapboxSearch/sample/src/main/java/com/mapbox/search/sample/api/HistoryDataProviderJavaExample.java)

```java
package com.mapbox.search.sample.api;

import android.os.Bundle;
import android.util.Log;

import androidx.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import com.mapbox.search.ServiceProvider;
import com.mapbox.search.common.AsyncOperationTask;
import com.mapbox.search.record.HistoryDataProvider;
import com.mapbox.search.record.HistoryRecord;
import com.mapbox.search.common.CompletionCallback;

import java.util.List;

public class HistoryDataProviderJavaExample extends AppCompatActivity {

    private final HistoryDataProvider historyDataProvider = ServiceProvider.getInstance().historyDataProvider();

    private AsyncOperationTask task = null;

    private final CompletionCallback<List<HistoryRecord>> callback = new CompletionCallback<List<HistoryRecord>>() {
        @Override
        public void onComplete(List<HistoryRecord> result) {
            Log.i("SearchApiExample", "History records: " + result);
        }

        @Override
        public void onError(@NonNull Exception e) {
            Log.i("SearchApiExample", "Unable to retrieve history records", e);
        }
    };

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        task = historyDataProvider.getAll(callback);
    }

    @Override
    protected void onDestroy() {
        task.cancel();
        super.onDestroy();
    }
}
```

**Kotlin**

Title: `MainActivity.kt`

[View on GitHub](https://github.com/mapbox/mapbox-search-android/tree/main/MapboxSearch/sample/src/main/java/com/mapbox/search/sample/api/HistoryDataProviderKotlinExample.kt)

```kt
package com.mapbox.search.sample.api

import com.mapbox.search.ServiceProvider
import com.mapbox.search.common.AsyncOperationTask
import com.mapbox.search.common.CompletionCallback
import com.mapbox.search.record.HistoryRecord
import com.mapbox.search.sample.R

class HistoryDataProviderKotlinExample : BaseKotlinExampleActivity() {

    override val titleResId: Int = R.string.action_open_history_data_provider_kt_example

    private val historyDataProvider = ServiceProvider.INSTANCE.historyDataProvider()

    private var task: AsyncOperationTask? = null

    private val callback: CompletionCallback<List<HistoryRecord>> = object : CompletionCallback<List<HistoryRecord>> {
        override fun onComplete(result: List<HistoryRecord>) {
            logI("SearchApiExample", "History records:", result)
            onFinished()
        }

        override fun onError(e: Exception) {
            logI("SearchApiExample", "Unable to retrieve history records", e)
            onFinished()
        }
    }

    override fun startExample() {
        task = historyDataProvider.getAll(callback)
    }

    override fun onDestroy() {
        task?.cancel()
        super.onDestroy()
    }
}
```