我创建了一个扩展BroadcastReceiver的接收器。 这用于执行我的通知,该通知每天根据用户选择的时间重复。 由于某种原因,我无法使它正常工作。 我担心我从选号员那里弄错了时间,但是我是编程新手,可能会需要一些帮助。 先感谢您。 如果您看到任何错误,请告诉我。

这是我的主要活动(MyActivity)

公共类MyActivity扩展了Activity {

TimePicker timePicker;
Button setAlarm;
private int hour;
private int minute;
PendingIntent pendingIntent;
int AM_PM;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    timePicker = (TimePicker) findViewById(R.id.timePicker);
    setAlarm = (Button) findViewById(R.id.setUpAlarm);

    setAlarm.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            setAlarm();
        }
    });



}

private void setAlarm() {


    int hour = timePicker.getCurrentHour();
    int minute = timePicker.getCurrentMinute();
    long time = 60 * hour + minute;



    AlarmManager alarmMgr = (AlarmManager) getSystemService(ALARM_SERVICE);
    Intent intent = new Intent(this, NotifyService.class);
    PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

    //create alarms
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(System.currentTimeMillis());
    calendar.set(Calendar.HOUR_OF_DAY, hour);
    calendar.set(Calendar.MINUTE, minute);


    // AlarmManager.INTERVAL_DAY.
    alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
            AlarmManager.INTERVAL_DAY, alarmIntent);

}

这是我的Notification类(扩展BroadcatsReceiver)

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

@Override
public void onReceive(Context context, Intent intent) {



        //generate notification                                                     // should be splash activity
        PendingIntent pi = PendingIntent.getActivity(context, 0, new Intent(context, MyActivity.class), 0);
        Notification notification = new NotificationCompat.Builder(context)

                .setContentTitle(null)
                .setContentText("Your tip for today is ready")
                .setSmallIcon(R.drawable.ic_launcher)
                .setContentIntent(pi)
                .build();

    }

// dont forget to compile "com.android.support:support-v4:18.0.+"



}

这是我的清单

<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.INTERNET" />





<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".MyActivity"
        android:label="@string/app_name" >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <receiver
        android:name=".NotifyService"
        android:enabled="true"
        android:exported="true" >
    </receiver>

</application>

#1楼 票数:0

不要在Android清单中使用带有过滤器的接收器。 创建一个“明确意图”,而不是使用意图过滤器。 这条路,

意图i =新意图(您的随机意图动作名称)。

这应该可以解决您的问题

  ask by Evan Dix translate from so

未解决问题?本站智能推荐:

1回复

使用AlarmManager和BroadCast接收器在特定时间未显示通知

这就是我所说的广泛的广播接收器类 这是我的广播接收器课程 这是清单代码 但是广播接收器类不显示任何通知。 获得正确的建议以解决问题将很有帮助。
1回复

Android通知AlarmManager和BroadcastReceiver

我的AlarmManager似乎无法正常工作。 这是我设置警报的代码: 这是我的Notify类: } 我的清单中有以下内容: 我没有任何例外,但通知没有显示。
1回复

报警管理器和广播接收器不停止

我想在多个特定日期和时间创建通知,这些日期和时间存储在数据库中。 我可以在正确的日期和时间获得通知,但我后来注意到的是,我也在第二天随机收到通知。 每当我重新启动模拟器时,它们都会不断出现。 所以,似乎我无法停止报警管理器或广播接收器。 我试过提供pendingIntent来告警管理
3回复

Android - AlarmManager 不触发 BroadcastReceiver 以显示本地通知

我正在编写一个祈祷应用程序,它要求应用程序在祈祷时间显示本地通知。 每天的祈祷时间都不同,因此我使用以下代码来显示来自 BroadcastReceiver 的位置通知,并在该计划之后立即显示下一个通知。 问题是,应用程序需要每天至少打开一次,通知才能在特定时间继续触发。 有没有办法在不打开应用程
1回复

AlarmManager没有触发BroadcastReceiver

以下是我的代码,问题是什么? 如果我查看日志,则没有AlarmReceiver类的启动。 因此,不会向用户发送通知。 我在循环中尝试了每一分钟但仍未发生任何事情。 我究竟做错了什么? 提前致谢!! //接收器类AlarmReceiver // android清单
1回复

警报管理器对通知的响应

我设置了每天触发的警报,我的问题是,通知中将有两个按钮,即“放开”按钮和“我知道了”按钮。 我好吗 设置警报的代码: 收件人中的代码: Consulta_Tratamento Consulta_tratamento =新的Consulta_Tratamento();
1回复

警报管理器不显示通知

我是Android新手,正在使用Notification Alarm Manager来显示通知。 我使用的是API23。我在下面发布的代码可以正常运行,但是我无法理解为什么它没有通知我? 谁能帮我这是什么错误? 谢谢。 主要活动 AlarmBroadcastReceive
1回复

在 android 启动时重新启用之前在关机前未通知的警报(非重复)

我是 Android 通知的新手,我有一个关于设备重启后的问题,如何仅重新启用那些在关机前没有通知的警报。 举个例子: 仅 3 个警报,所有警报均不重复。 第 1 天、第 2 天和第 3 天各安排一个闹钟。 这些警报的信息存储在 Room 数据库中。 电话在第 1 天开机,警报 1 正