2012-08-10 78 views
0

我有一個報警設置觸發每個n分鐘,它工作正常。 但是我發現從廣播接收器讀取應用程序的SharedPreferences會導致一些問題(它讀取了這些首選項的較早版本,可能是由於PID不同)從廣播接收器調用一個活動,但保持在後臺

我被告知要做我需要做的事情,應該調用一個Activity來解決SharedPreferences問題,但是創建了一個新的問題。

活動必須專門在後臺運行。它本質上是一個心跳,向Presence解決方案發送一些信息,保持用戶在場。

警報接收機: 公共類AlarmReceiver延伸的BroadcastReceiver {

@Override 
    public void onReceive(Context context, Intent intent) { 
     Intent alarmIntent = new Intent(context, AlarmActivity.class); 
     alarmIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(alarmIntent); 
    } 
} 

在清單

<activity android:name=".AlarmActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> 

報警活動僅發送一個HTTP更新的活性,但即使我除去除super.onCreate之外的所有行,它仍然強制應用程序進入前臺,並且重點關注。但只有當應用程序本身僅通過主頁按鈕「最小化」時纔會發生。如果我用後退按鈕關閉它,它不會強制進入對焦狀態,而心跳在後臺仍然很好。

我該如何預防?

我正在開發API版本7(Android 2.1),但可以根據需要更新到API 8。

回答

2

考慮使用Service來執行後臺任務。

+0

這樣做。謝謝。我需要做些什麼來結束服務任務嗎?像活動「完成()」方法調用? – 2012-08-10 13:57:57

+0

你可以調用stopSelf(); – 2012-08-10 14:44:47

+0

謝謝。這是其中正確的詞觸發一個惱人的問題的正確的解決方案的情況下,其他的一切只是在適當的地方後立即:) – 2012-08-10 15:05:08