0

我发现以下内容:https ://developer.android.com/reference/android/support/wearable/complications/ProviderInfoRetriever.html

我试图实现的:

Executor executor = new Executor() {
    @Override
    public void execute(@NonNull Runnable command) {
    }
};

ProviderInfoRetriever.OnProviderInfoReceivedCallback callback = new ProviderInfoRetriever.OnProviderInfoReceivedCallback() {
    @Override
    public void onProviderInfoReceived(int i, @Nullable ComplicationProviderInfo complicationProviderInfo) {
        Log.d("MyWatchFace", complicationProviderInfo.providerName);
    }
};

ProviderInfoRetriever providerInfoRetriever = new ProviderInfoRetriever(MyWatchFaceService.this, executor);

providerInfoRetriever.init();
providerInfoRetriever.retrieveProviderInfo(callback,
        new ComponentName(
                getApplicationContext(),
                MyWatchFaceService.class)
        , COMPLICATION_IDS);

可悲的是,我在调试日志中没有看到任何内容:/我做错了executor什么吗?

4

2 回答 2

1

似乎我不得不使用特定的执行程序:

Executor executor = Executors.newSingleThreadExecutor();

ProviderInfoRetriever.OnProviderInfoReceivedCallback callback = new ProviderInfoRetriever.OnProviderInfoReceivedCallback() {
    @Override
    public void onProviderInfoReceived(int i, @Nullable ComplicationProviderInfo complicationProviderInfo) {
        Log.d("MyWatchFace", complicationProviderInfo.providerName);
    }
};

ProviderInfoRetriever providerInfoRetriever = new ProviderInfoRetriever(getApplicationContext(), executor);

providerInfoRetriever.init();
providerInfoRetriever.retrieveProviderInfo(callback,
        new ComponentName(
                getApplicationContext(),
                MyWatchFaceService.class)
        , COMPLICATION_IDS);
于 2017-03-10T16:13:25.440 回答
1

是的,你的Executor. 这是我的一个样子(它正在工作):

final Executor executor = new Executor() {
            @Override
            public void execute(@NonNull Runnable r) {
                new Thread(r).start();
            }
        };

在我看来,您缺少Thread代码。

于 2017-03-10T16:17:02.987 回答