1

在我的Android應用程序中,我從localStorage檢索數據並在listview中顯示。現在,我希望它即使在關閉應用程序時也能從webservice獲取更新的數據。我正在使用webchromeclient。我曾嘗試與服務,但它僅與應用程序啓動和我不能當應用程序被關閉或破壞與localStorage互動,我試圖報警觸發服務每小時運行一次的Android服務,從Web服務獲取數據並更新localStorage webview chromeclinet

代碼:

@Override 
public void onReceive(Context context, Intent intent) { 
WakefulIntentService.acquireStaticLock(context); 
    context.startService(new Intent(context, AppService.class)); 
} 

回答

2

例如,如果我需要運行我的服務下面的代碼,每3第二次使用:

Calendar cal = Calendar.getInstance(); 
Intent intent = new Intent(this, LockService.class); 
PendingIntent pintent = PendingIntent.getService(this, 0, intent, 0); 
AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 3*1000, pintent); 

到底需要廣播接收器,用於當手機重啓,像如下代碼:

public class MyScheduleReceiver extends BroadcastReceiver { 

    private static final long REPEAT_TIME = 1000 * 60; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    AlarmManager service = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    Intent i = new Intent(context, MyStartServiceReceiver.class); 
    PendingIntent pending = PendingIntent.getBroadcast(context, 0, i, 
     PendingIntent.FLAG_CANCEL_CURRENT); 
    Calendar cal = Calendar.getInstance(); 

    cal.add(Calendar.SECOND, 60); 

    service.setInexactRepeating(AlarmManager.RTC_WAKEUP, 
    cal.getTimeInMillis(), REPEAT_TIME, pending); 

    } 
} 

和幫助類:

public class MyStartServiceReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    Intent service = new Intent(context, LocalWordService.class); 
    context.startService(service); 
    } 
} 

,並需要獲得許可

,並確定在清單

+0

嗨服務和廣播接收器。感謝你的回答。我是這個應用程序的UI設計師。我想你誤解了這個問題,或者OP沒有明確解釋。即使應用程序未按小時打開,他也希望將json數據存儲到本地存儲中。他還沒有得到如何通過android服務存儲數據。 – Ravimallya 2014-10-11 12:56:36

相關問題