2016-11-03 7 views
2

毎日テキストフィールドやその他のビューをリセットする必要があるアプリがあります。そのような日常的な仕事は一定のままですが、毎日または午前12時に進捗をリセットする必要がありますandroid appの毎日のデータをasynタスクとしてリセットする

+0

テキストフィールドを「リセットする」とはどういう意味ですか?アプリケーションの再作成時に、まだリセットされていないデータをどのように保存していますか? –

+0

@ cricket_007共有の参照を使用します。リセットすると、setTextメソッドでテキストビューのテキストをリセットすることを意味します –

+0

アプリを開いたときに現在の日付を保存して「明日」を保存できますか?保存された日付と現在の日付を比較する簡単な計算を行い、 ?たぶんあなたは、以下の答えのような自動/バックグラウンドソリューションの必要性を考えているでしょう –

答えて

0

これは、AlarmManagerを使用して実装するのは本当に簡単な作業です。

this guideの後は、あなたにとっては簡単です。

例:

//define your intent 
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
Intent intent = new Intent(context, AlarmReceiver.class); 
PedingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0); 


// Set the alarm to start at approximately 00:00 h(24h format). 
Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 
calendar.set(Calendar.HOUR_OF_DAY, 00); 
//repeteat alarm every 24hours 
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
     AlarmManager.INTERVAL_DAY, alarmIntent); 

今すぐ "AlarmReceiver" と呼ばれるBroadcastReceiverを作成し、その中に、あなたがしたいものは何でも。

public class AlarmReceiver extends BroadcastReceiver 
{  
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     //do whatever you want. 
    } 
} 

多分、作業に応じてWakefulBroadcastReceiverを使用する必要があります。

+0

私はgetSharedPreference(key、int)を呼び出せません。 onRecieveの内側にあります。私に何ができる? –

+0

どうやってやっていますか?あなたはそれを行う必要があります: "context.getSharedPreference(key、int);" – SamuelPS

関連する問題