2012-10-18 56 views
1

我用下面的代碼共享一些文本使用可用的客戶:如何防止活動在android應用程序中銷燬?

Intent share = new Intent(Intent.ACTION_SEND); 
    share.putExtra(Intent.EXTRA_TEXT, "Here's some text for Twitter."); 
    share.setType("text/plain"); 
    startActivity(Intent.createChooser(share, "Share this via"));  

它的工作原理(打開Twitter客戶端,爲樣本),但是當我接近該應用程序,我發現我的應用程序也被關閉。但我需要我的應用程序仍然活躍。我需要爲此做些什麼?

回答

3

Your app will be in the background, onResume and onPause will both be called,前提是操作系統有足夠的內存來保存新應用程序和所有舊應用程序。

  • 如果您有一個長時間運行的過程,而您在用戶沒有查看它時需要使用服務。

  • 如果您需要用戶以相同狀態返回應用程序,請返回you need to do the work in onResume and onPause to save the state information and initialize your UI again。如果你真的擔心它會被殺死(當然,它不應該丟失我認爲的包),你可以將它們存儲在你的應用的SharePreferences中。

  • 如果你想知道什麼時候從該特定份額的意圖應用的回報,使用startActivityForResult

+0

感謝地暗示,我必須保存和恢復應用程序的狀態。但主要問題是,當我關閉另一個應用程序時,我的應用程序不活動,我需要手動運行它。我無法理解如何在其他應用程序(由我啓動)關閉後重新激活我的應用程序。 – kruz05

+0

如果用戶按下後退按鈕,您的應用程序將會打開。特別是如果您執行startActivityForResult,它將始終使用正確的信息返回到您的活動。 – Edison

+0

不像你說的那樣確切。當第一篇文章中的代碼執行後,將出現「選擇應用程序」對話框。接下來,我選擇Twitter客戶端,它運行,我的應用程序似乎在後臺。接下來,我按下「Tweet」按鈕,此時我的應用程序消失。接下來,我推入「後退」harware按鈕,並且twitter客戶端退出,我可以看到標準設備屏幕(桌面) – kruz05

相關問題