1

アプリで NotificationCompat.Builder クラスを使用しようとしています。次のコードは、ICS 電話では問題なく動作しますが、Gingerbread では動作しません。私の理解では、サポート ライブラリは API レベル 4 までの電話から Builder へのアクセスを許可していませんか? 私は根本的に間違ったことをしていますか?

public class MainActivity extends Activity implements OnClickListener {
NotificationCompat.Builder builder;
NotificationManager nm;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        builder = new NotificationCompat.Builder(this);
        nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        builder.setContentTitle("Test Notification")
        .setContentText("This is just a test notification")
        .setTicker("you have been notified")
        .setSmallIcon(R.drawable.ic_stat_example)
        .setWhen(System.currentTimeMillis());

        findViewById(R.id.btn_notify).setOnClickListener(this);
    }

    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        if(arg0.getId() == R.id.btn_notify){
        nm.notify(1, builder.build());
        }
    }
}
4

1 に答える 1

8

通知がクリックされたときにトリガーされるインテントを提供する必要があります。そうしないと、Gingerbread に通知が表示されません。通知がクリックされたときにアクティビティを開始したくない場合は、次のように空のインテントを渡すだけです。

Intent intent = new Intent();
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);

builder.setContentTitle("Test Notification")
    .setContentText("This is just a test notification")
    .setTicker("you have been notified")
    .setSmallIcon(R.drawable.ic_stat_example)
    .setWhen(System.currentTimeMillis())
    .setContentIntent(pendingIntent); // add this
于 2013-06-19T06:36:11.193 に答える