1

以下のコードは冗長だと思います。ここで基本的なものが欠けていますか? ここで重複コードを減らす方法はありますか。Intent または PendingIntent オブジェクトのいずれかを使用できますが、両方を使用できるのはなぜですか?

    Intent updateUI = new Intent(SENDTOBACKGROUND_SERVICE);
    updateUI.putExtra("Signal", God.YELLOW);
    sendBroadcast(updateUI);

    Intent sendNotification = new Intent(DriverService.this, DriverHome.class);
    sendNotification.putExtra("Signal", God.YELLOW);

    PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), 0, sendNotification, PendingIntent.FLAG_UPDATE_CURRENT);

    Notification n = new NotificationCompat.Builder(DriverService.this)
            .setContentTitle("Attempting to update location")
            .setContentText("Cab @(last) " + currentLocationInText)
            .setSmallIcon(R.drawable.yellow).setContentIntent(pIntent).setAutoCancel(true)
            .build();

    ((NotificationManager) DriverService.this.getSystemService(NOTIFICATION_SERVICE)).notify("Taxeeta", R.id.cabLocation, n);
4

2 に答える 2

1

いいえ、両方必要です。APendingIntentは an のラッパーIntentです。ラップPendingIntentする必要はありません。また、 をにIntent入れることはできません。を別のコンポーネントに引き渡したい場合は、 を使用する必要があります。これにより、将来のある時点で、他のコンポーネントが (一種の「プロキシ」として) を送信できるようになります。IntentNotificationPendingIntentIntentIntent

于 2013-10-16T13:43:07.290 に答える