簡體   English   中英

特定時間通知錯誤

[英]Notification at specific time error

我正在嘗試制作一個簡單的應用程序,例如在特定時間(下午4:25)發出通知

但是當我的手機在下午4:25到達時,通知不會出現

我不知道是什么問題

那是代碼

MainActivity.class

 package com.example.notifi;

 import java.util.Calendar;

 import android.app.Activity;
 import android.app.AlarmManager;
 import android.app.PendingIntent;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuItem;

 public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    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, Notificationmassage.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);
 }
 }

Activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" >

</RelativeLayout>

Notificationmassage.class

 package com.example.notifi;

 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.support.v4.app.NotificationCompat;
 import android.util.Log;

 public class Notificationmassage extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent arg1) {
    showNotification(context);
}

private void showNotification(Context context) {
    Log.i("notification", "visible");

    PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
            new Intent(context, Notificationmassage.class), 0);

    NotificationCompat.Builder mBuilder =
        new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("xyz")
            .setContentText("It will contain dummy content");
    mBuilder.setContentIntent(contentIntent);
    mBuilder.setDefaults(Notification.DEFAULT_SOUND);
    mBuilder.setAutoCancel(true);
    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    mNotificationManager.notify(1, mBuilder.build());
}  
 }

主人

 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.notifi"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="21" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        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="com.example.notifi.Notificationmassage"></receiver>
</application>

</manifest>

這是我的全部代碼

我不知道錯誤在哪里

請幫忙

謝謝

在這種情況下,您不能使用explicit intent ,而必須使用implicit intent

new Intent(context, Notificationmassage.class)explicit intent

您應該將其更改為implicit intent ,即new Intent("com.example.notifi.NOTIFI_RECEIVER")

並且您需要在清單中定義您的BroadcastReceiver

<receiver android:name="com.example.notifi.Notificationmassage" >
    <intent-filter>
         <action android:name="com.example.notifi.NOTIFI_RECEIVER" />
    </intent-filter>
</receiver>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM