2011-07-15 13 views
0

私のクラスはアクティビティクラスを継承できなかったので、私はcontext.startActivity()を使って新しいアクティビティを開始しました。この種の打ち上げでは、打ち上げられた活動をどのように殺すことができますか?このような状況でfinish()を使うにはどうすればいいですか?アンドロイドでアクティビティを殺す

+0

あなたは他の場所からあなたの活動を殺す必要があります(殺す活動からではありません)。それは正しいですか –

+0

アクティビティを継承しないクラスで、アクティビティを作成しました。今私はそれを殺したい。次の声明はそれを殺すことです。問題は、クラスがActivityを継承しないため、私はfinish()を使用できません。それを行うさまざまな方法は何ですか? – Kishan

+0

私の答えがあなたに役立つならば、それを受け入れてください。StackOverflowのあなたの評判が高まり、今後さらに多くの人々があなたの質問に答えてくれます。 – Varundroid

答えて

0

このタイプの起動では、起動した動作をどのように強制終了できますか?

あなたはありません。

どうすればこのような状況でfinish()を使用できますか?

あなたはありません。 1つのアクティビティは一般的に別のアクティビティを終了しません。

次の声明はそれを殺すことです。

「非常に次の文」の時点までに新しいアクティビティは表示されないため、最初に起動してはいけません。

+0

何らかの条件が満たされたら、アクティビティをどうやって殺すことができますか? – Kishan

+0

@Kishan:あなたが起動した新しいアクティビティは、「何らかの条件が満たされた」ときに 'finish()'を使って自分自身を*殺すことができます。新しいアクティビティがフォアグラウンドにある間は、元のアクティビティは何もしていないはずです。 – CommonsWare

+0

@ commonsWare-と同じですが、vアクティビティを終了します(クラスがアクティビティを継承するとき)。finish()関数を使用します。vもアクティビティクラスを継承しなくてもそれを殺す何らかの方法でなければなりませんか? – Kishan

2

結果を得るために新しいアクティビティを開始した場合は、の代わりにstartActivityForResult()を使用する必要があります。

必要な作業を実行した後でアクティビティを停止したい場合は、必要な処理をすべて実行した後にonCreate()の末尾にfinish()と電話してください。

あなたの心に何か他のものがある場合は、私に知らせてください。私はあなたを助けるために最善のレベルを試みます。

+0

ありがとうございます。私は最後にfinish()メソッドを使用することができますが、私のクラスはfinish()を呼び出すために必要なActivityクラスを継承しません。これが問題です。 – Kishan

+1

この場合、dalvikによるアクティビティとして扱われないため、終了する必要はありません。あなたのクラスを通常のJavaクラスと同じように扱います。それをインスタンス化して使用し、必要に応じて最後にインスタンスを破棄することもできます。それ以外の場合はガベージコレクションによって処理されます。 – Varundroid

0

LAUNCHERアクティビティのonCreateメソッドからcontexオブジェクトを渡すだけで済みます。

以下のコードを使用することができます。

`パブリッククラスABC {

  Contex co; 
     ABc(Contex con){ 
       co=con; 
      } 
     con.startActivity(intent); 

}`

そしてonCreate方法は、このABcクラスのオブジェクトを作成します。

+0

これは私がやったことですが、あなたのコードで作成したアクティビティをどうやって殺すことができますか? (ランチャーアクティビティで) – Kishan

+0

con.finish()を使用できます。クラスで。 –