AlarmManager与Android的通知 [英] AlarmManager with Notification Android

查看:198
本文介绍了AlarmManager与Android的通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想给用户一个通知,在一定的时间每​​一天,所以我用一个AlarmManager一个通知。我有这样的:

I'm trying to give the user a notification each day on a certain time so I use an AlarmManager with a notification. I have this:

public void check_products(int hour, int minute){=
    Calendar calendar = Calendar.getInstance();

    Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE);
    am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000, pendingIntent);
}

public class AlarmReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);

        Intent notificationIntent = new Intent(context, MainActivity.class);
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

        NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(context)
                .setContentTitle("Reminder")
                .setContentText("You need to eat")
                .setWhen(System.currentTimeMillis())
                .setContentIntent(pendingIntent);

        notificationManager.notify(1, mNotifyBuilder.build());
    }
}

和在清单(根据应用程序的权限它说:设置闹钟):

And in the manifest (under the app permissions it says "set an alarm"):

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

在我主我称之为带参数的功能check_products,但无论我尝试做;它不显示任何东西...是否有人知道我在做什么错了?

In my main I call the function check_products with the parameters, but whatever I try to do; it doesn't show anything... Does someone know what I'm doing wrong?

我柠新到Android编程,所以我不知道如何将alarmmanager和通知相结合...

I'm verry new to android programming so I wouldn't know how to combine the alarmmanager and notifications...

推荐答案

在您的清单文件调用接收器。

Call receiver in your manifest file.

筛选

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

     <receiver android:name="myPackage.AlarmReceiver"
               android:enabled="true">
        <intent-filter>
               <action android:name="android.intent.action.BOOT_COMPLETED"></action>
        </intent-filter>
     </receiver>
</application>

试试这个例子整体

MainActivity.java

    private PendingIntent pendingIntent;

    Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
            pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent , 0);
            AlarmManager littlefluppy = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
            littlefluppy.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2000, pendingIntent);

AlarmReceiver.java

public class AlarmReceiver extends BroadcastReceiver {
    public AlarmReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO: This method is called when the BroadcastReceiver is receiving
        // an Intent broadcast.

    Log.e("alram set.....","");
    }
}

这篇关于AlarmManager与Android的通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆