使用會話! 保存會話中的數據:
@Override
public void onReceive(Context context, Intent intent)
{
SessionManager session = new SessionManager(context);
// get user data from session
HashMap<String, Object> user = session.getUserDetails();
// name
m_userId = (int)user.get(SessionManager.KEY_ID);
m_context = context;
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
// Put here YOUR code.
//Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // For example
wl.release();
}
要生硬,你的基本設計是有缺陷的恕我直言。服務而不是接收方應該是「發起轉讓的一方」。接收者僅僅是查找某個事件的一種手段,只不過是將事件的處理委託給服務進行處理。 – CommonsWare
@CommonsWare,怎麼樣? Receiver接收到事件(如SCREEN_ON),因此它是唯一可以繼續進行的事件。 – greenoldman
「因此它是唯一可以進一步進行的人」 - 並且通過將該事件的處理委派給處理服務來「進一步進行」。 – CommonsWare