如何在Google Play商店中更新我的应用时,如何显示应用的通知?

时间:2016-02-16 13:52:00

标签: java android notifications updates

我的应用程序具有设置通知功能。这是我的代码。

@SuppressWarnings("deprecation")
public static void setNotification(Context _context) {
    NotificationManager notificationManager =
            (NotificationManager) _context.getSystemService(Context.NOTIFICATION_SERVICE);
    int icon_id = R.drawable.icon;

    Notification notification = new Notification(icon_id,
            _context.getString(R.string.app_name), System.currentTimeMillis());
    //
    Intent intent = new Intent(_context, MainActivity.class);
    notification.flags = Notification.FLAG_ONGOING_EVENT;
    PendingIntent contextIntent = PendingIntent.getActivity(_context, 0, intent, 0);
    notification.setLatestEventInfo(_context,
            _context.getString(R.string.app_name), 
            _context.getString(R.string.notify_summary), contextIntent);
    notificationManager.notify(R.string.app_name, notification);
}

此代码工作正常。如果我的应用关闭,则会显示通知。 但即使设置了通知,当用户通过Google Play商店更新我的应用版本时,通知也会被取消。

我知道......

  • 卸载我的应用时会取消通知。
  • 事实上,更新是"卸载并安装"。

我的应用版本更新后如何保持显示?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在更新后显示通知。 因此,您可以实现监听应用程序更新或重启设备的接收器并再次显示通知。 添加到你的清单:

    <receiver
        android:name=".UpdatingReceiver"
        android:enabled="true"
        android:exported="false" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package" />
        </intent-filter>
    </receiver>

并实施接收器:

public class UpdatingReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction()) || Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())) {
        // check is need to show notification
    }
}