2011-10-24 36 views
0

我有擴展活動的類。這有一個「註銷」菜單選項。當我點擊它從另一個類中調用註銷(上下文)(不是從Activity擴展)。安卓設置新的意圖從活動類

public class MyTask extends Activity{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.listlayout); 
} 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.mytaskmenu, menu); 
return true; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.logout: 
       Functions.logout(getBaseContext()); 
       return true; 
      default: 
       return true; 
     } 
    } 
} 


public class Functions { 

    public static void logout(Context context) 
    { 
     DbAdapter_User db2= new DbAdapter_User(context); 
     db2.open(); 
     db2.handleLogout(); 
     db2.close(); 
     context.startActivity(new Intent(context, LogIn.class)); 
    } 

和錯誤是

android.util.AndroidRuntimeException: 
Calling startActivity() from outside of an Activity context requires the   FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 

什麼是錯的GOING?

+0

在MyTask類或函數來調用函數類的MyTask活動的背景下? – user533844

+0

傳遞「this」而不是getBasecontext爲我工作。感謝回覆。 – user533844

回答

0

你需要,通過傳遞活動的背景下,而不是通過Functions.logout(getBaseContext());嘗試Functions.logout(this.getContext());

+0

我是否需要在函數中更改註銷(上下文上下文)? – user533844

+0

不,只是改變方法的參數,從getBaseContext()到this.getContext() –

+0

它工作了!!!!!!!!!!!!!!!!! – user533844