2016-06-24 16 views
0

私のアプリケーションでは、複数のアプリケーションアクティビティをすぐに開始しようとしています。これらは、例えばシステムAndroidは複数の起動インテントを実行します

上の他のアプリケーションです:

startActivity(getPackageManager().getLaunchIntentForPackage(packageInfo.packageName)); 

私は、「アプリケーション1」を言うことができますだけのためにstartActivityを呼び出した場合は一度(そしてアプリは罰金を開始しますが、私は2回連続でstartActivityを呼び出した場合、 「Applicaiton1」および再度「アプリケーション2」)、それが唯一の第二startActivityを開始するために - 最初startActivityはエラーが最初startActivityが失敗したことを示していない表示されている

答えて

0

を失敗したことを示すエラーが表示されません

これは、最初のstartActivity()が成功したためです。

startActivity()は非同期です。要求されたアクティビティが開始される直前にすぐに戻ります。 startActivity()を連続して2回呼び出すと、両方のアクティビティが開始され、ユーザはタスクのバックスタックの最上位になるので、2番目のアクティビティを見ています。

ほとんどの場合、正解は「あなたがやろうとしていることをしないでください」です。つまり、最初にstartActivity()を呼び出し、今後のライフサイクルメソッド(たとえば、onStart())で制御が返って2番目のstartActivity()を呼び出すまで待つだけです。

+0

スタックの上部を見ると正しいように見えますが、それは私の見ているものです。ただし、概要ボタンを押した場合、最初のアプリケーションはオーバービューにありません – slugibihl

+0

@GrayShadow:デフォルトでは、アプリケーションと2番目のアプリケーションと同じタスクになります。したがって、デフォルトでは、概要画面には表示されません。 – CommonsWare

+0

これまでのお役に立てててありがとうございます - 概要に表示する方法はありますか? – slugibihl

関連する問題