通常,为了启动一个新的 Activity 并获得它的结果,我会从一个 Activity 类中使用
public void startActivityForResult (Intent intent, int requestCode)
但是,如果我尝试从非 Activity 类启动一个新的 Activity 并获得它的结果怎么办?我怎样才能做到这一点?
我问的原因是我目前正在LoginManager
上课(非活动课程)。它具有以下代码。
accountManager.getAccountManager().getAuthToken(account, AUTH_TOKEN_TYPE, true, new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> future) {
try {
Bundle bundle = future.getResult();
if (bundle.containsKey(AccountManager.KEY_INTENT)) {
Intent intent = bundle.getParcelable(AccountManager.KEY_INTENT);
intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK);
// Compilation error, as LoginManager doesn't have startActivityForResult method.
startActivityForResult(intent, REQUEST_AUTHENTICATE);