2016-11-07 4 views
0

Androidアプリの開発を始めたばかりで、webviewがあります。特定の時刻から15分ごとにwebviewをリロードすることを願っていました。正しく理解していれば、これを達成するためにAlarmManagerを使用する必要があります。しかし、私は実際にAlarmManagerを使用する方法を得ていないので、誰かがこれで私を助けることができますか?たぶん小さな例か何か?speicific時にリロードするwebview

ありがとうございます!

また、私は文書を見ました。

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クラス だ

UPDATE ので、私はここにAlarmManagerを実装しようとしました...それは働いているとは思わない... ここに私の活動のファイルがあります...パブリッククラスAlarmReceiverはBroadcastReceiverを拡張します{

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クラスからリロードします)。 –

関連する問題