0

実装で Android アプリの意図を取得する方法を探していApplicationます。Applicationクラス自体にはありませんがgetIntent()、アクティビティはこの機能があるようです。

この理由は、ステートレスと呼ぶことができるいくつかのインテントを持つアプリがあるためです。しかし、ユーザーがログインしている必要があります。したがって、すべてのアクティビティで同じコードをハッキングすることなく、ユーザーがログインしているかどうかを確認し、そうでない場合はログインダイアログを表示したいと思います。

4

2 に答える 2

1

すべてに何らかの機能をActivity持たせる方法は、次のように、それらすべてに共通のスーパークラスを継承させることです。

class LoginActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        if (getIntent().hasExtra(...)) {
            doLogin();
        }
    }

class MyActivity extends LoginActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // user is now logged in
        setContentView(...);
    }
}

LoginActivity、他のアクティビティが継承するためだけに存在するため、 で言及しないでくださいAndroidManifest.xmlIntentそのようなことは意味がないので、あなたはあなたの中に入ることができませんApplication. オブジェクトは、プロセスApplicationが実行されている限り存在します。任意の時点で、0、1、または複数のアクティビティがライブである可能性がある場合、何が返されるでしょうか?Intent

Intentただし、起動とログインとの関係については、少し当惑していることを認めなければなりません。インテントに関係するものではなく、セッション状態/資格情報を持つグローバル オブジェクトが必要なようです。

于 2013-04-10T09:10:08.797 に答える