Zunächst einmal bin ich ein Anfänger in Android App Development. Ich versuche eine Android-App zu erstellen, die dem Benutzer den Zeitplan für einen bestimmten Tag mitteilt. Ich möchte jedoch ein Feature hinzufügen, in dem die App automatisch eine Benachrichtigung über die nächste Vorlesung sendet. Ich habe versucht, mithilfe der Dokumentation, die auf der Android Development-Website verfügbar ist, eine einfache Benachrichtigung zu erstellen, aber der Code scheint keine Wirkung zu haben. Ich habe verschiedene andere Methoden ausprobiert, die in ähnlichen Fragen erwähnt wurden, aber keine scheint irgendeinen Effekt zu haben. Ich poste meinen Code, damit Sie mir sagen können, was ich falsch mache.So fügen Sie mehrere Benachrichtigungen zu verschiedenen Zeiten an einem einzigen Tag hinzu
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>
Vielen Dank @Rick Sanchez. Ich habe es versäumt, die Empfängeranweisung im Manifest hinzuzufügen –
Willst du meine Antwort dann plz akzeptieren :) –