2016-11-07 51 views
0

我刚开始开发一个android应用程序,它有一个web视图。我希望从特定时间开始每15分钟重新加载webview,如果我理解正确,我需要使用AlarmManager来完成此操作。但我真的不知道如何使用AlarmManager,所以有人可以帮我解决这个问题?也许小例子或什么?在特殊时间重新加载webview

谢谢!

另外,仅供参考我已看过文件。

UPDATE 所以我想在这里实现AlarmManager ..不要以为它的工作... 这里是我的活动文件...

public class MainActivity extends Activity { 

// to make our alarm manager 
AlarmManager alarmManager; 
WebView myWebView; 
private PendingIntent pendingIntent; 

Context context; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main); 

    this.context = this; 

    //initialize alarm manager 
    //alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

    // create instance of a calendar 
    //Calendar calendar = Calendar.getInstance(); 

    // create an intent to Alarm Receiver class 
    Intent alarmIntent = new Intent(this.context, AlarmReceiver.class); 
    pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, alarmIntent, 0); 

    myWebView = (WebView) findViewById(R.id.webview); 
    myWebView.setWebViewClient(new WebViewClient()); 
    myWebView.loadUrl("<some url goes in here>"); 
    WebSettings webSettings = myWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 

    reloadWebView(); 
} 
private void reloadWebView(){ 
    AlarmManager alarmManger = (AlarmManager)getSystemService(ALARM_SERVICE); 
    int interval = 1000*60*15; 

    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(System.currentTimeMillis()); 
    calendar.set(Calendar.HOUR_OF_DAY, 4); 
    calendar.set(Calendar.MINUTE,0); 

    alarmManger.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), interval, pendingIntent); 

    } 
} 

和这里的AlarmReceiver 类公共类AlarmReceiver扩展广播接收器{

WebView myWebView; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     myWebView.reload(); 
     Toast.makeText(context, "I'm running", Toast.LENGTH_SHORT).show(); 
    } 
} 

谁能告诉我什么,我做错了......? 谢谢!

+0

http://stacktips.com/tutorials/android/repeat-alarm-example注册-in-android –

回答

0

您安排警报管理器在凌晨4点发射您的意图。 随着RTC_WAKEUP使用当前系统时间+间隔第一把火:

alarmManger.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, interval, pendingIntent); 

此外,检查您的报警接收机在清单

+0

谢谢你的回答! :D 但是,我需要我的应用程序首先在特定的时间触发意图,而不是在应用程序启动或设备重新引导时启动。我更好奇如何抓住我的webview(在我的代码重新加载崩溃应用程序:'()并从AlarmReceiver类重新加载它。 –