T锅 2016-08-20 16:01 采纳率: 0%
浏览 1318

android 自定义布局的Notification 卡顿?

安卓6.0的,写一个播放器,想要把Notification改成普通音乐播放器的样子。
状态栏下拉上划整个都非常卡。。。

  private void sendCustomerNotification(int command){
        NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        builder.setContentTitle("Notification");
        builder.setContentText("S.M.Player  请点击进入播放界面");
        builder.setSmallIcon(R.mipmap.ic_launcher);
        //builder.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.push));
        builder.setAutoCancel(false);
        builder.setOngoing(true);
        builder.setShowWhen(false);
        RemoteViews remoteViews = new RemoteViews(getPackageName(),R.layout.notify);
        remoteViews.setTextViewText(R.id.title,"Notification");
        remoteViews.setTextViewText(R.id.text,"song"+"index");
//        if(command==CommandNext){
//            remoteViews.setImageViewResource(R.id.btn1,R.drawable.ic_pause_white);
//        }else if(command==CommandPlay){
//            if(playerStatus==StatusStop){
//                remoteViews.setImageViewResource(R.id.btn1,R.drawable.ic_pause_white);
//            }else{
//                remoteViews.setImageViewResource(R.id.btn1,R.drawable.ic_play_arrow_white_18dp);
//            }
//        }
        Intent Intent1 = new Intent(this,MusicplayerActivity.class);
        Intent1.putExtra("command",1);
        //getService(Context context, int requestCode, @NonNull Intent intent, @Flags int flags)
        //不同控件的requestCode需要区分开 getActivity broadcoast同理
        PendingIntent PIntent1 =  PendingIntent.getService(this,5,Intent1,0);
        remoteViews.setOnClickPendingIntent(R.id.notifyplaying,PIntent1);

        Intent Intent2 = new Intent(this,MusicplayerActivity.class);
        Intent2.putExtra("command",2);
        PendingIntent PIntent2 =  PendingIntent.getService(this,6,Intent2,0);
        remoteViews.setOnClickPendingIntent(R.id.notifynextsong,PIntent2);

        Intent Intent3 = new Intent(this,MusicplayerActivity.class);
        Intent3.putExtra("command",3);
        PendingIntent PIntent3 =  PendingIntent.getService(this,7,Intent3,0);
        remoteViews.setOnClickPendingIntent(R.id.notifypresong,PIntent3);

        builder.setContent(remoteViews);
        Notification notification = builder.build();
        notificationManager.notify(8,notification);
    }

<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="64dp"
android:orientation="horizontal">
android:layout_width="wrap_content"
android:paddingLeft="5dp"
android:gravity="center"
android:layout_height="fill_parent"
android:orientation="vertical">

    <TextView
        android:id="@+id/notifysongtitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="this is title"
        android:textColor="#FFFFFF"/>
    <TextView
        android:id="@+id/notifysinger"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="artist"
        android:textColor="#FFFFFF"/>

</LinearLayout>
<ImageButton
    android:id="@+id/notifypresong"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:src="@drawable/lastsong"
    />
<ImageButton
android:id="@+id/notifyplaying"
    android:layout_width="40dp"
    android:layout_height="40dp"
android:src="@drawable/play"
/>
<ImageButton
    android:id="@+id/notifynextsong"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:src="@drawable/nextsong"
    />
<ImageButton
    android:id="@+id/notifyclose"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_gravity="right"
    android:src="@drawable/randomplay"
    />


  • 写回答

1条回答 默认 最新

  • devmiao 2017-02-07 15:23
    关注
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站