所以我有一個SettingsActivity將SettingsFragment在用戶單擊MainActivity. 對于我的SettingsFragment,當用戶第一次啟動螢屏時,它會激活AlarmManager我已經設定的。這在用戶第一次登錄時默認為開啟。用戶確實可以選擇關閉通知。
現在,如果用戶從不進入設定螢屏,它將永遠不會激活AlarmManager. 我如何SettingsActivity在后臺啟動它實際上并不顯示SettingsActivityor的 UISettingsFragment然后立即關閉SettingsActivity/SettingsFragment以便它不會永遠在后臺運行?我只想在用戶第一次登錄或再次登錄時啟動它,以便應用程式知道AlarmManager它是打開還是關閉的狀態。如果它不知道狀態,則在用戶手動單擊設定按鈕之前,用戶將永遠不會收到任何通知。
uj5u.com熱心網友回復:
一、了解activity生命周期:https : //developer.android.com/guide/components/activities/activity-lifecycle
您可以通過呼叫 finish() 隨時完成您的活動(例如 onResume())。您還可以使用 Timer、Handler 或 Alarm 在不同的時間完成()它。
為了使您的活動透明/不可見,請不要使用任何型別的布局來膨脹它。我還建議將以下幾行添加到您的活動的清單中:
android:launchMode="singleInstance"
android:excludeFromRecents="true"
關于在沒有任何型別的用戶互動的情況下啟動此活動的能力......您可能希望從那里使用 Service 和 startActivity() (并且可能還完成()它)。
也就是說,根據您的描述,我認為您正在以一種非常復雜的方式設計它,并且可能會讓自己陷入困境。
uj5u.com熱心網友回復:
你應該讓你的 SettingActivity 成為你的 SettingActivity。
當您不使用 SQLITE 或其他東西來存盤設定時:https : //developer.android.com/training/data-storage/shared-preferences
將所有代碼放入 SettingFragment 不應該是您的解決方案。你可以這樣做:
return this.sharedPreferences.getBoolean(context.getResources().getString(R.string.preference_stateAlarmmanager), false); // returns false if the preference not yet exists
只需閱讀您的財產并執行您的代碼即可啟動警報管理器,以防萬一
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/323376.html
標籤:安卓 科特林 android-fragments 安卓活动
