2012-03-15 10 views
0

私はアンドロイドのショートカットアプリケーションを作っています。私のアプリケーションは、ユーザーが選択して終了したビルトインアプリケーションを開く必要があります。finish()コールの後に表面ビューが空白になる

たとえば、ユーザーが「設定」を選択した場合は、組み込みの設定アプリケーションを開き、アプリケーションを終了する必要があります。私はインテントを使って最初の仕事を達成することができます。しかし、私は私のアプリケーションを閉じるために "finish()"を使用します。プロセスはまだバックグラウンドで実行されています。メニューからアプリケーションを再起動すると、サーフェスビューは空になります。

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setClassName("com.android.settings","com.android.settings.Settings"); 
context.startActivity(intent); 
((Activity) context).finish(); 

グーグルでは、強制的にアプリケーションを終了するコードが見つかりましたが、アプリケーションを強制終了しないようにアドバイスしています。

どこが間違っていますか?アプリケーションを再起動すると、サーフェスビューが空白になるのはなぜですか?

+0

コードをもう少し投稿できますか?あなたは活動中ですか?そうであれば、(Activity)コンテキストなしでfinish()を呼び出すことができるはずです – FoamyGuy

+0

私はサーフェスビューの内側にいません。私は一時停止で活動を終了しようとしました。しかしまだアクティビティは閉じていません。 –

+0

public void onPause(){ \t finish(); \t super.onPause(); } –

答えて

0

onDestroy()を使用してアプリケーションを終了します。

+0

仕上げがすべてを表示しなかったのは、あまりにも多くのメモリが他のクラスから戻ってきたことを思い出すかもしれないからです。 – sdfwer

+0

finish()は途中で以前のアクティビティに戻ります。そのアクティビティーに欠落しているデータがある場合、ブランク画面が表示されます。 – sdfwer

+0

onDestroy()をアクティビティに含める必要がありますか?しかし、そのアプリケーションを閉じるには?アプリケーションは、バックグラウンドで実行するべきではありません –

関連する問題