通常,爲了推出新的活動,並得到其結果,從活動類的,我會用啓動一個新的活動,並得到其結果,通過非活性類
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);
可能不使用上下文嗎?因爲登錄管理員無權訪問上下文。 –
你需要有活動上下文,否則你不能使用它! –
,你可以在LoginManager類中創建一個接受活動上下文的單個參數構造函數!參見我更新的答案 –