0

アプリに次のデザインがあります

  • いくつかの一般的なタスクを実行する BaseActivity があります
  • 他のすべてのアクティビティは BaseActivity を拡張するため、他のすべてのアクティビティで共通のタスクのコードを複製する必要はありません。
  • BaseActivity で定義されているこのような一般的なタスクの 1 つは、ユーザーが自分のアカウントにログインするログイン操作です。いくつかのバックエンド データベース操作が含まれているため、これらのメソッドを作成する際に AsyncTask を使用しています。

今私の問題は、子アクティビティで BaseActivity の login メソッドを呼び出した場合、どのようにコントロールを子アクティビティに戻すかということです。ログイン メソッドは、アプリ全体の任意のアクティビティから呼び出すことができるため、すべてのアクティビティは、成功したログインについて BaseActivity から確認を返す必要があります。これにより、それらの子アクティビティの特定のタスクを実行できるようになります。

どんな提案/助けも大歓迎です

4

1 に答える 1

1

BaseActivity クラスには、次のように performLogin() と postLogin() という 2 つのメソッドを含めることができます。

public void performLogin()
{
  // custom code    
  LoginTask task = new LoginTask(this); // pass reference of the activity to Asyntask
  // execute task
}

この LoginTask には、BaseActivity 型のパラメーターを受け入れるコンストラクターがあります。AsyncTask (上の例では LoginTask) を用意してから、 activity.postLogin() メソッドを呼び出します。子アクティビティの必要に応じて、このメソッドをオーバーライドできます。

于 2013-09-06T22:54:48.280 に答える