2016-04-11 2 views
1

Прежде всего, я новичок в разработке приложений для Android. Я пытаюсь сделать приложение Android, которое сообщает пользователю таблицу времени для определенного дня. Однако я хочу добавить функцию, в которой приложение автоматически отправляет уведомление о следующей лекции в то время. Я попытался создать простое уведомление, используя документацию, доступную на веб-сайте Android Development, но этот код, похоже, не имеет никакого эффекта. Я пробовал другие методы, упомянутые в похожих вопросах, но ни один из них не имеет никакого эффекта. Я отправляю свой код, чтобы вы могли сказать мне, что я делаю неправильно.Как добавить несколько уведомлений в разное время за один день

Monday.java

package com.arc.sid.timetable; 

import android.app.AlarmManager; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListView; 
import android.widget.Toast; 

import java.util.ArrayList; 
import java.util.Calendar; 


public class Monday extends AppCompatActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_monday); 

    ArrayList<SearchResults> searchResults = GetSearchResults(); 

    final ListView periods = (ListView) findViewById(R.id.mondayList); 
    periods.setAdapter(new CustomBaseAdapter(this, searchResults)); 

    periods.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
      Object period = periods.getItemAtPosition(position); 
      SearchResults fullObject = (SearchResults) period; 
      Toast.makeText(Monday.this, "Period : " + " " + fullObject.getPeriodName() + "\nLecturer : " 
        + " " + fullObject.getFaculty() + "\nTimings : " + " " + fullObject.getTiming(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
Intent intent = new Intent(this, MondayNotificationService.class); 
PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, intent, 0); 
// set for 30 seconds later 
alarmMgr.set(AlarmManager.RTC, Calendar.getInstance().getTimeInMillis() + 30000, alarmIntent); 
} 

MondayNotificationService.java

package com.arc.sid.timetable; 

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.v7.app.NotificationCompat; 

public class MondayNotificationService extends BroadcastReceiver { 

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

    Notification notification = new NotificationCompat.Builder(context) 
      .setContentTitle("Random title") 
      .setContentText("Random text") 
      .setSmallIcon(R.drawable.icon) 
      .setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, Monday.class), 0)) 
      .build(); 

    notificationManager.notify(0, notification); 
} 

}

activity_monday.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="10dp" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:id="@+id/activity_monday" 
tools:context="com.arc.sid.timetable.Monday"> 

<ListView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/mondayList" 
    /> 

</LinearLayout> 

ответ

1

Я проверил ваш код, и я могу видеть уведомление через определенное время. Я думаю, вы, возможно, пропустили упоминание получателя в файле манифеста. Добавьте следующее, если это так.

<receiver 
android:name=".MondayNotificationService"> 
</receiver> 
+0

Большое спасибо @Rick Sanchez. Я пропустил добавление утверждения приемника в манифест –

+0

Примите ли вы мой ответ, а затем plz :) –

-2

Использование Анализировать Библиотека Проверьте это link может помочь

+0

Как это полезно? – Joe3112

Смежные вопросы