2017-07-25 5 views
-1

私はsetLatestEventInfoに問題があります。新しいバージョンに変更することはできません。 新しいコードを書き直してください。deprecated notification.setLatestEventInfo

private void showNotification(int moodId, int textId) { 
    CharSequence text = getText(textId); 
    Notification notification = new Notification(R.drawable.icon, getText(R.string.notify_message_started), System.currentTimeMillis()); 
    notification.setLatestEventInfo(this, getText(R.string.notify_message_running_headline), getText(R.string.notify_message_running_text), 
      PendingIntent.getActivity(this, 0, new Intent(this, AudioMonitor.class).setFlags(603979776), 0)); 

    notification.flags |= 2; 
    this.mNM.notify(MOOD_NOTIFICATIONS, notification); 

} 

私はこのレベルのフラグ "notification.flags | = 2"を新しいレベルのapiで使用できます。 私は新しい初心者のアンドロイドだ

あなたは最新バージョンをAPIレベルのチェックを実行して使用することができます
+1

使用[NotificationCompat.Builder](https://developer.android.com/reference/android /app/Notification.Builder.html) – ADM

+1

[NotificationCompat.Builderで通知を作成する方法](https://stackoverflow.com/questions/13902115/how-to-create-a-notification-with)の可能な複製-notificationcompat-builder) –

+0

@ TadijaBagarić通知でフラグを使用します。このリンクdos'ntはこの項目を持っています – zahra

答えて

0

final int sdkVersion = Integer.parseInt(Build.VERSION.SDK); 

if (sdkVersion < Build.VERSION_CODES.HONEYCOMB) 
{ 
    // Deprecated in API level 11 
    CharSequence text = getText(textId); 
    Notification notification = new Notification(R.drawable.icon, 
    getText(R.string.notify_message_started), System.currentTimeMillis()); 
    notification.setLatestEventInfo(this, getText(R.string.notify_message_running_headline), getText(R.string.notify_message_running_text), 
     PendingIntent.getActivity(this, 0, new Intent(this, AudioMonitor.class).setFlags(603979776), 0)); 

    notification.flags |= 2; 
    this.mNM.notify(MOOD_NOTIFICATIONS, notification); 

} 
else 
{ 
// available from API level 11 and onwards 
final Intent notificationIntent = new Intent(this, AudioMonitor.class); 
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | 
Intent.FLAG_ACTIVITY_SINGLE_TOP); 
PendingIntent contentIntent = PendingIntent.getActivity(myContext, 0, notificationIntent, 0); 

Notification notification = new Notification.Builder(mContext) 
    .setContentTitle(getText(R.string.notify_message_running_headline)) 
    .setContentText(getText(R.string.notify_message_running_text)) 
    .setContentIntent(contentIntent); 
    .setWhen(System.currentTimeMillis()) 
    .setOngoing(true) 
    .setSmallIcon(R.drawable.icon) 
    .setLargeIcon(R.drawable.icon) 
    .build(); 
    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 

    notificationManager.notify(MOOD_NOTIFICATIONS, notification); 
} 
+0

ありがとうございますが、それは完全ではありません。私はフラグとSystem.currentTimeMillis()が必要)と..。私のコードに従って「APIレベル11以降で利用可能」でコードを編集できますか? – zahra

+0

現在の時刻が必要な場合は、時刻は必要ありませんが、まだコードに追加されています。フラグに関しては、異なるフラグのためのメソッドが異なるので、数字だけではできません。今のところ、FLAG INT 2を使用していたときにコード内に進行中のコードを追加しました。フラグを追加したい場合は、それぞれの方法をここで確認できます。 https://developer.android.com/reference/android/app/Notification.Builder.html –

+0

私は上記のコードの他の部分を使う必要はありませんか? PendingIntent.getActivity(this、0、新しいインテント(this、AudioMonitor.class).setFlags(603979776)、0));とthis.mNM.notify(MOOD_NOTIFICATIONS、通知); – zahra

関連する問題