2017-07-07 42 views
0

也許有人遇到此錯誤。這是一個mindbreaker。如果從文件夾打開後主屏幕圖標被點擊後Android應用程序重新啓動,反之亦然,但只有從Play市場下載時纔會重新啓動。

我開發了一個應用程序。如果我sideload它到我的Android設備三星J1它工作正常。我的意思是通過瀏覽器從我的網站調試或加載。它安裝到應用程序文件夾中。我通過簡單地按住應用程序文件夾中的圖標來安裝主屏幕後,以常用方式爲主屏幕創建快捷方式,並獲得在調試過程中經歷的預期行爲。

預期的行爲(這也是行爲如果sideloaded,從網站通過瀏覽器下載到設備上)工作正常!

1)從應用程序文件夾打開應用程序,做任何與應用程序無關。轉到主屏幕,執行任何操作,然後從主屏幕快捷方式打開應用程序,或從應用程序文件夾恢復應用程序。這很好。我們可以從我們完成的地方開始。

如果從谷歌Play商店

1)從主屏幕啓動應用程序下載的意外行爲。轉到應用程序文件夾,按下應用程序圖標,應用程序再次啓動,因爲應用程序內的業務邏輯發生壞事。反之亦然同樣的事情。從應用程序文件夾啓動應用程序,進入主屏幕並點擊應用程序圖標應用程序重新啓動,不會恢復。

Play商店對應用進行了更改,發生這種情況。另外我也注意到,從商店下載時,包裝的尺寸要小得多,所以它肯定會對文件做些什麼。

無論如何,似乎有不少文章解決了這個問題,但我無法找到所描述的完全相同的情況,所以希望這種情況下的解決方案能夠爲社區提供有價值的貢獻。謝謝!

+0

嘗試安裝HockeyApp從應用中檢索崩潰。您確定從Play商店中,您沒有使用「發佈」版本(來自您的visual studio)和其他情況下的「調試」版本嗎? – hugoterelle

+0

它始終是發佈版本的100%。那麼該應用程序不會崩潰...順便說一句,我忘了提及我正在使用Xamarin Visual Studio 17建設一切。感謝您的建議,曲棍球應該可以幫助在其他一些問題。 –

+0

你確定沒有在給定的級別拋出異常,並在你的應用程序的另一個級別捕獲異常嗎? – hugoterelle

回答

2

所以經過一些研究,我已經找到了適合我的答案。在MainActivity.cs的Xamarin Anroid項目中,將LaunchMode = LaunchMode.SingleInstance添加到活動標籤。

該宣言是自動編譯的,因此您不能直接更改xml,而是隻使用類文件。所以最終它看​​起來像這樣。

將以下代碼粘貼到主活動類代碼上方。請注意添加LaunchMode = LaunchMode.SingleInstance標籤,它實際上增加了

<activity android:launchMode="singleInstanc>e"到Manifesto.xml

[Activity(Label = "LavkaLavka", 
    Icon = "@drawable/icon", 
    Theme = "@style/MainTheme", 
    MainLauncher = true, 
    LaunchMode = LaunchMode.SingleInstance, 
    ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 



public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity 
{ 

    protected override void OnCreate(Bundle bundle) 
    { 
     TabLayoutResource = Resource.Layout.Tabbar; 
     ToolbarResource = Resource.Layout.Toolbar; 



     base.OnCreate(bundle); 

     global::Xamarin.Forms.Forms.Init(this, bundle); 
     LoadApplication(new App()); 
    } 
} 
相關問題