2016-11-23 118 views
-2

我想要一个简单的Toast消息“Helloo everyone”在每天11:30 a.m显示。为此,我有两个类MainActivity和AlarmReceiver 我已经尝试了很多解决方案但没有找到答案。 请帮帮我。在每天的固定时间,Toast消息应显示在Android

代码: -

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Calendar cur_cal = new GregorianCalendar(); 
     cur_cal.setTimeInMillis(System.currentTimeMillis());//set the current time and date for this calendar 

     Calendar cal = new GregorianCalendar(); 
     cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR)); 
     cal.set(Calendar.HOUR_OF_DAY, 11); 
     cal.set(Calendar.MINUTE, 30); 
     cal.set(Calendar.SECOND, cur_cal.get(Calendar.SECOND)); 
     cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND)); 
     cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE)); 
     cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH)); 
     Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); 
     PendingIntent pintent = PendingIntent.getService(MainActivity.this, 0, intent, 0); 
     AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
     alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 30*1000, pintent); 
    } 
} 

AlarmReceiver.java

public class AlarmReceiver extends BroadcastReceiver { 
    int MID = 0; 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 


      // For our recurring task, we'll just display a message 
      Toast.makeText(context, "Hello everyone", Toast.LENGTH_SHORT).show(); 

     } 

    } 

Mainfest

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 
    <receiver android:name="com.example.alarmmanagernotifcation.AlarmReceiver"/> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 

       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <receiver android:name=".AlarmReceiver"></receiver> 
    </application> 

回答

0

创造你的警报这样。

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR_OF_DAY, 18); 
calendar.set(Calendar.MINUTE, 30); 
calendar.set(Calendar.SECOND, 0); 
Intent intent1 = new Intent(MainActivity.this, AlarmReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0,intent1, PendingIntent.FLAG_UPDATE_CURRENT); 
AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE); 
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); 

清单权限。

<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/> 
<receiver android:name="com.example.alarmmanagernotifcation.AlarmReceiver"/> 

enter image description here

+0

我已经试过您的解决方案,但它不工作 – Shivangi

+0

任何错误。请发布日志。 – AndroidHacker

+0

没有什么事情发生。 – Shivangi

相关问题