0

我有一个具有 ViewPager 和 FragmentStatePagerAdapter 的活动。活动显示的每个页面都是一个片段。每个片段都有不同的内容。

我正在将 App Indexing 添加到此活动中。我读过很多东西,包括https://developers.google.com/app-indexing/android/publish#add-app-indexing-api-calls。这个链接说:

关于片段:您以与上面示例中的活动相同的方式构建片段。但是因为片段可能在一个活动中执行多次,或者可能有多个片段,所以您应该注意只调用一次 API。以下是一些指导方针:

  1. 如果活动调用 API,则不要从活动中的任何片段再次调用 API。
  2. 如果活动不调用 API,而您希望片段调用它,那么请确保只有一个片段调用 API,并且只调用一次。

这个谷歌开发者页面说活动应该只调用一次 API。如果只调用一次,我只能索引一页内容。我希望能够在每次 ViewPager 显示新片段时调用 API。

有没有办法做到这一点?我找不到描述如何索引通过在活动中分页 ViewPager 显示的内容的文档。

我希望能够做这样的事情。

1.In the activity onCreate call mClient = new
GoogleApiClient.Builder(this).addApi(AppIndex.API).build();

2. In activity onCreate call mClient.connect().

3. In the activity when a fragment becomes visible call AppIndex.AppIndexApi.start(mClient, myAction)

4. In the activity when a fragment becomes invisible call AppIndex.AppIndexApi.end(mClient, myAction)

5. In activity onDestroy call mClient.disconnect()

4. Repeat steps 3 and 4 as new views/fragments are paged in by the ViewPager

这种设计将导致单个活动中的多个 AppIndexApi 调用,违反(正如我解释的那样)谷歌文档。即使我确实实现了这一点,我也不相信它实际上正确地索引了我的内容。我上面描述的代码会起作用吗?在这种情况下,您能否建议一种更好的索引方式。还是我只是对 App Indexing 所做的事情感到非常困惑?

4

1 回答 1

0

只要您为新内容(不是一遍又一遍的相同内容)调用 api 就可以了。您可以针对不同的内容进行多个 api 调用。

干杯,

MB

于 2016-04-26T21:59:43.160 回答