2017-05-11 12 views
0

私は透明なアクティビティを持つ簡単なコードを持っています(これは私のMainActivityに課されています)。私はこの透明な活動をボタンをクリックして殺す必要があり、その後私はダイアログを表示する必要があります。 もし透明なアクティビティのonDestroy/Lifecycleを呼び出すことによって透明なアクティビティを閉じる

public void buttonClick(View view) { 
    if (view.getId() == R.id.bToK) 
    { 
     onDestroy(); 
    } 
} 

透明活動が、それはまだだだけで何も起こりません(デバッグモードで私はそれがonDestroyに行くことがわかりますが、私は全くそれを破壊しない)表示:しかし、最初にすべての私はそれを行う場合にはいくつかの問題を取得します私はonDestron()をfinish()に変更します。私のメインアクティビティが最初に表示され(onResumeが呼び出された)、次にこのダイアログを作成する際に次の問題を提供するためにonDestroyが呼び出されます。私は何をすればよいですか?私はこの透明を殺す後にこのダイアログを表示したいですか?

答えて

0

代わりにfinish()を呼び出します。これはonDestroy()を呼び出し、アクティビティのライフを尊重します。次にダイアログを開くには、onResultを使ってメインアクティビティを終了または開始する前に起動することができますhttps://developer.android.com/training/basics/intents/result.html

+0

落ち着いて!投稿を編集し、onResultを使用するとダイアログを閉じてアクティビティを終了することができます。または、ダイアログを開く主なアクティビティへのレスポンスコードで「透過」アクティビティを停止することができます。 – Timo

+0

TransparentActivityを強制終了した後、ダイアログを正確に開始する方法はありますか? onResume MainActivityの前か? –

+0

startActivityForResultでメインから透過的なアクティビティを開始する必要があり、finifh()を呼び出すとonresult(MainActivity内)がシステムによって呼び出され、ここでダイアログを開始します。私が答えてくれた書類を読む – Timo

関連する問題