Als einfaches Beispiel: Der folgende Code wird beim Booten Ausgabe einer laufendes Notification
mit einem Button
Ihre App zu starten.
Zuerst in Ihrem Manifest, fordern Sie die Erlaubnis, die BOOT_COMPLETED
Broadcast zu erhalten, und registrieren Sie einen Empfänger, um damit umzugehen.
<manifest ...>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
...
<application ...>
...
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
Die BootReceiver
gibt einfach die Notification
eine static
Methode verwendet, die in MainActivity
für dieses Beispiel festgelegt ist.
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
MainActivity.setNotification(context, true);
}
}
Die setNotification()
Methode erstellt eine RemoteViews
Instanz für die Notification
unter dem einfachen Layout verwenden und setzt ein PendingIntent
auf die Button
mit dem Start Intent
für Ihre Anwendung.
public static void setNotification(Context context, boolean enabled) {
NotificationManager manager =
(NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
if (enabled) {
final RemoteViews rViews = new RemoteViews(context.getPackageName(),
R.layout.notification);
final Intent intent = context.getPackageManager()
.getLaunchIntentForPackage(context.getPackageName());
if (intent != null) {
PendingIntent pi = PendingIntent.getActivity(context,
0,
intent,
0);
rViews.setOnClickPendingIntent(R.id.notification_button_1, pi);
}
Notification.Builder builder = new Notification.Builder(context);
builder.setContent(rViews)
.setSmallIcon(R.drawable.ic_launcher)
.setWhen(0)
.setOngoing(true);
manager.notify(0, builder.build());
}
else {
manager.cancel(0);
}
}
Die Notification
‚s-Layout ist einfach ein ImageView
und eine Button
in einer horizontalen LinearLayout
.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView android:id="@+id/notification_image"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginRight="10dp"
android:src="@drawable/ic_launcher" />
<Button android:id="@+id/notification_button"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Button" />
</LinearLayout>
Bitte beachten Sie, dass, da API 3.1, müssen Sie Ihre App mindestens einmal nach der Installation starten Sie es von der heraus zu bringen Zustand gestoppt. Bis dahin wird die BootReceiver
die Sendung nicht zugestellt.
Sie können einfach eine fortlaufende "Benachrichtigung" mit einer benutzerdefinierten "Ansicht" erstellen, die in einem Boot-Receiver gestartet wird. Keine Notwendigkeit für eine Bibliothek. –
Können Sie mir bitte ein Beispiel oder einen Referenzlink geben? :) @MikeM. – Dinuka