android - 从静态方法调用 finish()

标签 android android-activity facebook-android-sdk static

我正在使用 Facebook Android SDK,并希望在用户登录并获取用户对象后关闭我的 Activity。实际上,我存储了它的一部分,但无论如何我都想关闭该 Activity 。

      // make request to the /me API
      Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

        // callback after Graph API response with user object
        @Override
        public void onCompleted(GraphUser user, Response response) {
          if (user != null) {
           finish(); // causes errors
          }
        }
      });

finish() 上的 IDE 错误消息是:“无法从类型 Activity 对非静态方法 finish() 进行静态引用”

如何进行?

最佳答案

在 onCreate 中创建对您的 Activity 的引用

//onCreate
final Activity activity = this;

然后您可以在 onCompleted 回调中使用它

activity.finish();

您可能必须将 Activity activity 设为全局。

2014 年 2 月 26 日编辑:

请注意,从静态方法调用 finish() 可能是不好的做法。你告诉一个 Activity 的特定实例,它有自己的生命周期,它应该从静态方法中自行关闭,没有任何生命周期或状态。理想情况下,您将从绑定(bind)到 Activity 的对象调用 finish()

关于android - 从静态方法调用 finish(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16402844/

相关文章:

android - 将 Facebook 集成到 Android 应用程序中以通过 Facebook 转换广告

android - 将文本和应用程序名称发送到 Facebook

java - 在 Android 上使用 HTTP POST XML

java - 在 Android Service 和 Activity 之间保持 Messenger 的 Activity 状态

java - 在Android中获取纬度和经度而不显示 map

android - 移动 android SDK 安装文件夹

android - 为什么 FragmentManager 的 getBackStackEntryCount() 返回零?

android - 证书指纹(SHA1)我应该用发布证书更改吗?

android - Android Spinner未填充| Android Kotlin

android - 我想将图像从一项 Activity 转移到另一项 Activity