Android-Entwicklung: Wie man ein custom status bar Benachrichtigung?

Habe ich versucht, und versucht heute, nur, um eine benutzerdefinierte Nachricht mit 2 buttons und einen TextView.
Ich habe die XML-alraight. Aber der code, den ich versuchte zu verwenden, geben Sie mir nur Force Close

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.main);
        contentView.setImageViewResource(R.id.Button01, R.drawable.icon);
        contentView.setTextViewText(R.id.Button01, "Hello, this message is in a custom expanded view");

Intent notificationIntent = new Intent(this, main.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

ziemlich verloren, daher bitte nicht, senden Sie mir zu http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Ive versuchte.

Wäre wirklich froh, wenn jemand mir zeigen könnte, von Anfang, weil ich litterly versucht, diese den ganzen Tag und würde wirklich, wirklich zu schätzen, eine gute Antwort!

Danke!

//Lukas

BEARBEITEN* VOLLSTÄNDIGE CODE ZU VIKTOR

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.widget.RemoteViews;

public class main extends Activity {
    /** Called when the activity is first created. */
    String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

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

        int icon = R.drawable.icon;
        CharSequence tickerText = "Hello";
        long when = System.currentTimeMillis();

        Notification notification = new Notification(icon, tickerText, when);

        notification.flags |= Notification.FLAG_ONGOING_EVENT;


        String ns = Context.NOTIFICATION_SERVICE;
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.main);
        contentView.setImageViewResource(R.id.Button01, R.drawable.icon);
        contentView.setTextViewText(R.id.Button01, "Hello, this message is in a custom expanded view");


        notification.contentView = contentView;

        Intent notificationIntent = new Intent(this, main.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

        notification.contentIntent = contentIntent;
        final int CUSTOM_VIEW_ID = 1;
        mNotificationManager.notify(CUSTOM_VIEW_ID, notification);

    }
}

Stack trace:

04-27 14:43:07.035: ERROR/StatusBarService(337): couldn't inflate view for notification Com.haxxzor.multitask/0x1
04-27 14:43:07.035: ERROR/StatusBarService(337): android.view.InflateException: Binary XML file line #1: Error inflating class android.widget.HorizontalScrollView
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.view.LayoutInflater.createView(LayoutInflater.java:518)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.widget.RemoteViews.apply(RemoteViews.java:939)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at com.android.systemui.statusbar.StatusBarService.makeNotificationView(StatusBarService.java:524)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at com.android.systemui.statusbar.StatusBarService.addNotificationViews(StatusBarService.java:553)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at com.android.systemui.statusbar.StatusBarService.addNotification(StatusBarService.java:382)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at com.android.systemui.statusbar.CommandQueue$H.handleMessage(CommandQueue.java:178)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.os.Looper.loop(Looper.java:123)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.app.ActivityThread.main(ActivityThread.java:3683)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at java.lang.reflect.Method.invokeNative(Native Method)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at java.lang.reflect.Method.invoke(Method.java:507)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at dalvik.system.NativeStart.main(Native Method)
04-27 14:43:07.035: ERROR/StatusBarService(337): Caused by: android.view.InflateException: Binary XML file line #1: Class not allowed to be inflated android.widget.HorizontalScrollView
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.view.LayoutInflater.failNotAllowed(LayoutInflater.java:530)
04-27 14:43:07.035: ERROR/StatusBarService(337):     at android.view.LayoutInflater.createView(LayoutInflater.java:477)
04-27 14:43:07.035: ERROR/StatusBarService(337):     ... 17 more
04-27 14:43:10.113: ERROR/AndroidRuntime(815): FATAL EXCEPTION: main
04-27 14:43:10.113: ERROR/AndroidRuntime(815): android.app.RemoteServiceException: Bad notification posted from package Com.haxxzor.multitask: Couldn't expand RemoteViews for: StatusBarNotification(package=Com.haxxzor.multitask id=1 tag=null notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x2))
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1044)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at android.os.Looper.loop(Looper.java:123)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at android.app.ActivityThread.main(ActivityThread.java:3683)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at java.lang.reflect.Method.invokeNative(Native Method)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at java.lang.reflect.Method.invoke(Method.java:507)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-27 14:43:10.113: ERROR/AndroidRuntime(815):     at dalvik.system.NativeStart.main(Native Method)
04-27 14:47:12.065: ERROR/InputDispatcher(44): channel '40643090 com.notif/com.notif.main (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
04-27 14:47:12.065: ERROR/InputDispatcher(44): channel '40643090 com.notif/com.notif.main (server)' ~ Channel is unrecoverably broken and will be disposed!
04-27 14:47:31.551: ERROR/AndroidRuntime(885): FATAL EXCEPTION: main
04-27 14:47:31.551: ERROR/AndroidRuntime(885): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.notif/com.notif.main}: java.lang.IllegalMonitorStateException: object not locked by thread before notify()
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.os.Looper.loop(Looper.java:123)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.app.ActivityThread.main(ActivityThread.java:3683)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at java.lang.reflect.Method.invokeNative(Native Method)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at java.lang.reflect.Method.invoke(Method.java:507)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at dalvik.system.NativeStart.main(Native Method)
04-27 14:47:31.551: ERROR/AndroidRuntime(885): Caused by: java.lang.IllegalMonitorStateException: object not locked by thread before notify()
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at java.lang.Object.notify(Native Method)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at com.notif.main.onCreate(main.java:27)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-27 14:47:31.551: ERROR/AndroidRuntime(885):     ... 11 more
  • Können Sie nach dem code, wo Sie tatsächlich den Benutzer zu Benachrichtigen? Und sind Sie die Zuordnung der contentView zu Ihrem Notification Objekt contentView?
  • Sollten Sie post von der Ausnahme, dass den Absturz verursacht.
  • Lannér Sorry, wie ich sagte, im lost-tut mir Leid. Ich habe gelöscht die meisten davon, weil es nicht funktioniert hat. Aber wenn Sie mir helfen können würde ich mich sehr freuen!
  • Können Sie nach dem vollständigen code, der nicht funktioniert in ein edit deiner Frage?
  • Ich habe keine fangen. Weiß nicht, wie zu tun es auch nicht. Aber wenn Sie wissen, wie Sie eine benutzerdefinierte Benachrichtigung bitte Antwort 🙂
  • Wenn Sie lernen, LogCat, wird es zeigen Ihnen die genaue Zeile tritt der Fehler auf. developer.android.com/guide/developing/debugging/index.html
  • Können Sie auch suchen Sie die Linie von diesem Stück code, das funktioniert nicht im LogCat?
  • Ich habe logcat zeigte, aber es ist einfach so griechischen
  • ja, es braucht Zeit, du musst Sie ignorieren all die Scheiße, das ist nicht mit dir zu tun. Suchen, wo Sie sagt, AUSNAHME, und dann suchen Sie für Ihr Paket Namen wie com.blundell.Paket. Diese wird dann zeigen Sie eines Ihrer Klasse Namen und eine Zeilennummer
  • Versuchen Sie dieses video, extreme Hilfe. youtu.werden/e74z0_Z5QWI

InformationsquelleAutor carefacerz | 2011-04-27
Schreibe einen Kommentar