我可以从 Fragment 启动 Play 商店评论流程吗?

问题描述 投票:0回答:1

我正在重新设计我的应用程序,在我的新应用程序流程中,调用 Google Play 商店审核的最佳位置是在片段中。在我能够在活动中毫无问题地启动审查代码之前。然而,现在我已经将代码复制到一个片段中,我有两个症结点,我不知道如何解决。

  • 我们将之前的活动称为“FormerActivity”
  • 我们将新片段命名为“NewFragment”

所以,代码就像这样(有2种方法):

private void activateReviewInfo() {

        manager = ReviewManagerFactory.create(FormerActivity.this);
        Task<ReviewInfo> request = manager.requestReviewFlow();

        request.addOnCompleteListener(task -> {

            if(task.isSuccessful()) {

                reviewInfo = task.getResult();

            }
        });
    }


private void startReviewFlow() {

        if(reviewInfo != null) {

            Task<Void> flow = manager.launchReviewFlow(FormerActivity.this, reviewInfo);
            flow.addOnCompleteListener(task -> {

            });

        } else {

            // not creating a review because the object is null

        }
    }

问题是:

manager = ReviewManagerFactory.create(FormerActivity.this);

&&

Task<Void> flow = manager.launchReviewFlow(FormerActivity.this, reviewInfo);

我尝试了所有类型的组合来将 Activity 名称替换为 Fragment 名称(例如 NewFragment.this、this、NewFragment 等)。我知道我的理解中缺少一些基本知识。我希望这些方法能够以某种方式接受片段而不仅仅是一个活动。任何帮助将不胜感激,谢谢。

android android-fragments fragment android-fragmentactivity review
1个回答
0
投票

您需要在ReviewManagerFactory.create()的参数中传递当前Activity

要获取片段内的当前活动,您只需使用 getActivity() 它将返回片段当前正在运行的父活动。

在你的情况下应该是这样的

manager = ReviewManagerFactory.create(getActivity());

&&

Task<Void> flow = manager.launchReviewFlow(getActivity(), reviewInfo);
© www.soinside.com 2019 - 2024. All rights reserved.