0

startActivity 呼び出しを抽象化できるかどうか疑問に思っていましたか? 私がやろうとしているのは、以下を抽象化することです:

        Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
         public void run() { 
             startActivity(nextIntent); 
         } 
    }, 2000); 

以前に適切なクラスと適切なエクストラを使用してインテント nextIntent をセットアップした場所。アイデアは、インテントの開始を 2 秒間遅らせることです。上記のコードは、Activity から直接呼び出すと正常に動作します。私がやりたいのは、上記のコードを抽象化して、次のようなアクティビティから呼び出すことができるようにすることです。

DelayActivity.StartDelayedActivity(2,nextIntent);

これにより、2 秒の遅延後に次の Activity nextIntent が開始されます。ただし、これをコーディングしようとすると、次のエラーが発生します。

The method startActivity(Intent) is undefined for the type new Runnable(){}

私は次のようなトピックを見てきました:静的メソッドから startActivity() を呼び出すことは可能ですか? 、しかしそのスレッドはメソッドでインテントを定義します。すでにセットアップして渡しているインテントを取得できるようにしたいと思います。私が探していることは可能ですか?その場合、どのような変更を加える必要がありますか? どうもありがとう。

4

1 に答える 1

0

私はあなたが何を達成しようとしているのか少し疑わしい. これが役立つ十分な活動が本当にありますか? 「ポケットベル」のようなサービスを作ろうとしているようですね。では、代わりにそうしないのはなぜですか?

さらに、おそらく独自の を作成する必要はなくHandler、アクティビティの GUI スレッドに投稿したいだけです (本当に!)。そこで、デザインを再考します。

しかし、それをすべて無視したい場合は、直接の質問に対する答えは、 を呼び出す必要がある (インスタンスからのContexta などの) を渡す必要があるということです。thisActivitystartActivity

于 2013-01-23T16:19:57.483 に答える