2013-01-23 34 views
0

我有一個可以執行某些操作的Android應用程序。但是,我還允許在主屏幕上創建快捷方式來執行某些操作。你可以在應用程序中按下一個按鈕來調用某個方法(可以調用方法DoAction),以便用戶可以直接從快捷方式執行某些操作。單擊快捷方式時,它將打開主要活動並按按鈕的方式調用DoAction,然後在活動上調用finish()以關閉它。Android:使用快捷方式啓動應用,執行操作並退出?

但是,當應用程序已經在RAM中打開(最小化)時出現問題。在由快捷方式創建的活動中調用finish()之後,應用程序的舊運行實例被帶到前面(我不希望發生這種情況)。

我該如何解決這個問題?

+1

你是如何創建快捷方式?如果您正在使用Intent來嘗試添加SINGLE_TOP標誌。或者可能是CLEAR_TOP或CLEAR_TASK – FoamyGuy

+0

謝謝!我使用了ACTIVITY_CLEAR_TASK標誌,它完美地工作。 – user1989237

+0

您可以添加您現在使用的源代碼作爲對此問題的答案,以便它可以幫助未來的人們解決同一問題。如果你必須保密你的資料,請抽象出你想要的東西的名字,但是如果你發佈了它,那麼它將幫助你在將來幫助別人。 – FoamyGuy

回答

2

這是工作的代碼我用來創建快捷方式:

Intent shortcutIntent = new Intent(ShortcutActivity.this, com.example.myproject.ClassToOpen.class); 
shortcutIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); // This was the line that I needed to add 

ShortcutIconResource iconResource = Intent.ShortcutIconResource.fromContext(ShortcutActivity.this, R.drawable.shortcut); 
Intent intent = new Intent(); 
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource); 
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Shortcut Name"); 
setResult(RESULT_OK, intent); 
相關問題