我正在使用 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/