我有一个由数据库和多个服务组成的应用程序。 其中一个服务将信息添加到数据库(由用户触发)。 另一个服务定期查询数据库的变化,并使用新的数据作为input进行处理。 到现在为止,我使用了一个可configuration的计时器,每30秒左右查询数据库。 我阅读了关于更改通知的Sql 2005。 但是,在Sql 2008中,这个特性已经被弃用了。 直接在代码中获取数据库中发生的更改的最佳方式是什么? 什么是最佳实践?
当我在Facebook上收到消息时,我会在锁屏(iOS)上收到推送通知。 然后我在桌面上阅读这个消息。 在此之后,这个推送通知消失,没有任何与电话的交互。 我怎么能自己实现相同的东西去除过时的通知? 第二个用法可能是拼接通知。 例如,当有人喜欢你的照片时,Instagram会向你推送。 20后喜欢你的通知屏幕被破坏,无法读取。 但是,使用与Facebook相同的委托人似乎可以删除先前的相同类别的通知,并使用增加的计数器创build新的通知。 没有“用户A喜欢的照片X,用户B喜欢的照片Y等”,但“20个用户喜欢照片Z”。 在这里我已经看到类似的话题,但迄今为止还没有答案。 谢谢!
我的问题更多的是什么是一个好的做法,而不是可能的: 从工作线程调用NoticationManager.notify()是否是件好事? 无论如何,系统是否在UI线程中执行它? 我总是试着记住,关于UI的东西应该在UI线程中执行,其余的在工作线程中执行,正如关于进程和线程的Android文档所build议的: 另外,Andoid UI工具包不是线程安全的。 所以,你不能从一个工作者线程操纵你的UI – 你必须从UI线程对你的用户界面进行所有的操作。 因此,Android的单线程模型只有两条规则: 不要阻塞UI线程 不要从UI线程之外访问Android UI工具包 然而,我对Android文档本身给出的一个例子感到惊讶( 关于通知的进展情况),其中一个持续的通知进度直接从工作者线程更新: mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mBuilder = new NotificationCompat.Builder(this); mBuilder.setContentTitle("Picture Download") .setContentText("Download in progress") .setSmallIcon(R.drawable.ic_notification); // Start a lengthy operation in a background thread new Thread( new Runnable() { @Override public void run() { int incr; // Do the "lengthy" operation […]
我可以在iPhone上发送本地通知吗?
我使用这个简单的代码在Android 4.1或更高版本中设置通知。 它运作良好,但是我的问题来自SmallIcon和LargeIcon。 我知道SmallIcon显示在状态栏中,LargeIcon显示在下拉列表中。 NotificationCompat.Builder builder = new NotificationCompat.Builder(this); builder.setTicker("The ticker"); builder.setContentTitle("The title"); builder.setContentText("The text"); builder.setSmallIcon(R.drawable.my_small_icon); Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.my_96px_large_icon); builder.setLargeIcon(bm); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.notify("direct_tag", NOTIF_ALERTA_ID, builder.build()); 我的问题是: 通知启动后,在“The Ticker”文本旁边会显示一个裁剪过的小图标,而不是显示SmallIcon的原始大小而不会过大。 在下拉列表中,我看到左边的LargeIcon,这很好。 但是我也看到通知时间旁边的小图标。 我不想表明这一点。
我一直在玩toastr,并成功地将超时设置为0,所以吐司保持粘性,但是当我吐出吐司时吐司消失。 我想覆盖这个,所以只要用户点击它,烤面包就会消失 – 非常适合有很多文本的烤面包。 如何才能做到这一点?
我已经添加了listVivew头的视图, View TopSearch = (View) View.inflate(this, R.layout.search, null); lv.addHeaderView(TopSearch, null, false); 一切都很好,直到我尝试执行(当数据改变时) adapter.notifyDataSetChanged(); 这总是使我的应用程序崩溃给我下面的错误: > java.lang.ClassCastException:android.widget.HeaderViewListAdapter 如果我删除标题视图,那么没有错误。 有什么build议么? 谢谢。
我希望能够发出通知提醒用户有关已完成的计时器,但是我不希望单击通知时有意图。 我已经尝试传递null为意图 String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(ns); int icon = R.drawable.icon; CharSequence tickerText = "Hello"; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); CharSequence contentTitle = "My notification"; CharSequence contentText = "Hello World!"; notification.setLatestEventInfo(context, contentTitle, contentText, null); mNotificationManager.notify(HELLO_ID, notification);
我的目标是通过Chrome或Firefox中的Web应用程序(我们称之为X)在浏览器中发送Gmail式的桌面通知 ,而无需用户安装应用程序或扩展程序。 如果用户需要授予接收来自X的通知的权限,那么可以,只要浏览器不需要打开X,浏览器需要打开通知就可以了。 不需要任何浏览器窗口的解决scheme也可以工作。 我只是花了这一天的时间,到目前为止,我认为我已经了解到: 自OSX Mavericks以来,通过Safari推送通知可以在Safari 7+中执行此操作。 Web Notifications API适用于Chrome / Firefox,但要求用户的浏览器对X开放。 Twitter发送类似的networking通知,而不要求用户先获得许可,但要求用户的浏览器对Twitter开放。 有很多关于可能的Growl实现的参考,但据我所知,所有这些都需要用户安装Growl和/或支持Growl的应用程序才能工作。 我上面的任何一个陈述都可能是错误的 – 我很乐意听到它! 我也愿意接受任何其他解决scheme。 有任何想法吗? 谢谢阅读。
在可扩展的通知中:图标应具有哪些尺寸(以dp为单位)? 像在这里贪睡和电子邮件的图标: