0号首页,移动应用快捷门户

我们已有的应用,都将Android通知栏作为“传统的通知”用途,比如短信,微信,QQ都在这样使用。不过,同样的区域,也有创新的使用方式,比如最早的音乐播放控制,现在的360智键,百度搜索都开始占领通知栏,作为其应用的快捷入口,见附后图。

从移动应用的成功程度评价,“占领手机的前三屏”,到现在安装了大量应用App后,其实除了常用的几个,其余都在沉睡冰藏,很难主动想起去“找到-点击”的使用过程。

不过,Android3.0以后,有了Ongoing(运行中),可以从技术角度占领用户手机的最快捷入口,实现“0号首页”。作为娱乐工具型应用,SoLoMo的签到(Checkin),LBS类查询,个人记账,还可以提供“富功能方式”的通知提醒和通知提醒的后向操作,一些快捷工具操作。作为企业应用,工单提醒和快捷操作,考勤签到等。

当然,使用这种“占领并强滞留”的方式,首先要保证自己的应用“可用、好用”,或者是工作/企业应用的“必须使用”,否则被人讨厌的流氓类应用去占领就适得其反,让人更快速下载了。

技术实现

Android在新版的通知提醒服务中,增加了Ongoing选项,Notification.FLAG_ONGOING_EVENT,实现“在运行”的通知提醒,也就是可以常驻在通知栏,实现“永远的通知”,并在通知上附加其它操作。

关于“其它操作”,作为信息系统常用的按钮、文本、图片、列表等都可以添加展示。使用RemoteViews机制在“0号首页”区域实现自定义的视图。

Notification的自定义布局是RemoteViews,在自定义视图布局文件中,仅支持FrameLayout、LinearLayout、RelativeLayout三种布局控件和AnalogClock、Chronometer、Button、ImageButton、ImageView、ProgressBar、TextView、ViewFlipper、ListView、GridView、StackView和AdapterViewFlipper这些显示控件,不支持这些类的子类或Android提供的其他控件。

同时,Notification可以组合使用声音、三色灯、振动和屏幕提醒,实现更好的用户体验。

一个参考样例,代码:

public void addOngoingNotify(){NotificationCompat.Builder mBuilder = new Builder(this);RemoteViews mRemoteViews = new RemoteViews(getPackageName(), R.layout.view_notify);

mRemoteViews.setImageViewResource(R.id.notify_ongoing_icon_1, R.drawable.notify_ongoing_icon_2);

mRemoteViews.setTextViewText(R.id.txt_label, “远图未来”);

mRemoteViews.setViewVisibility(R.id._notify_button, View.VISIBLE);

mRemoteViews.setImageViewResource(R.id.btn_notify_1, R.drawable.btn_notify_2);

//按钮动作处理

Intent buttonIntent = new Intent(ACTION_BUTTON);

buttonIntent.putExtra(INTENT_BUTTONID_TAG, BUTTON_PREV_ID);

PendingIntent intent_prev = PendingIntent.getBroadcast(this, 1, buttonIntent, PendingIntent.FLAG_UPDATE_CURRENT);

mRemoteViews.setOnClickPendingIntent(R.id.btn_notify_1, intent_prev);

mBuilder.setContent(mRemoteViews)

.setContentIntent(getDefalutIntent(Notification.FLAG_ONGOING_EVENT))

.setSmallIcon(R.drawable.notify_ongoing_icon_2)

.setPriority(Notification.PRIORITY_DEFAULT)

.setWhen(System.currentTimeMillis())

.setTicker(“常驻通知@蓄丰实验舱”)

.setOngoing(true);

Notification notify = mBuilder.build();

notify.flags = Notification.FLAG_ONGOING_EVENT;

mNotificationManager.notify(notifyId, notify);

}

设置振动:setVibrate(long[] pattern)

设置三色灯:setLights(intledARGB ,intledOnMS ,intledOffMS )

设置声音:setSound(Uri sound)

技术支持是基础的,应用场景是充满无限想象力的。从现有的技术解决方案,创新和设计出新的产品或应用方式,是我们最幸福的事。

本文地址,http://blog.xufun.cn/?p=660

时间: 2024-10-10 09:18:28

0号首页,移动应用快捷门户的相关文章

【公众号h5开发】函数:执行关闭浏览器窗口,返回公众号首页

<script> pushHistory(); //监听触发物理返回按钮 window.addEventListener("popstate", function(e) { f_close();//执行关闭浏览器窗口,返回公众号首页 return; }, false); function pushHistory() { var state = { title: "title", url: "#" }; window.history.p

汇编语言:0号中断处理程序

assume cs:code code segment ;第一步:把中断向量表中0号表项的内容进行修改,使之指向我们自己编写 ;的中断处理程序的入口地址 start: mov ax,0 mov ds,ax mov word ptr ds:[0],0200h mov word ptr ds:[2],0 ;第三步,把我们刚才编写好的0号中断处理程序拷贝到中断向量表中 ;0号表项所指向的内存地址中0000:0200 mov ax,cs mov ds,ax mov si,offset int0  ;ds

汇编试验十二 编写0号中断的处理程序

要求:除法溢出的时候,在屏幕中心处显示overflow! 分析: 0号中断,对应的中断入口地址中的程序可以不用修改,放到内存0:空余位置(空余位置一般是0000::0200~0000:02FF)于是,就将显示字符串的程序放到这里: 用一个do0安装程序,将这个中断程序复制到内存0000:0200那里去:格式是:es:di 目的地址,ds:si源程序,cld复制方向,rep movsb 复制 子程序(中断程序)中,显示的字符串,不能放到一个独立的代码段,而是放到一个中断程序本身里面,因为复制程序运

poj 1611 求0号结点所在集合的元素个数

求0号结点所在集合的元素个数 Sample Input 100 42 1 25 10 13 11 12 142 0 12 99 2200 21 55 1 2 3 4 51 00 0Sample Output 411 1 # include <iostream> 2 # include <cstdio> 3 # include <cstring> 4 # include <algorithm> 5 # include <cmath> 6 # inc

解析磁盘0号扇区数据

自己写了一个简单工具,可读取磁盘扇区数据.也可下载其他工具查看.本人磁盘0号扇区数据如下 这个0号磁盘是整个磁盘的第一个扇区,称为MBR(Master Boot Record )主引导记录. 此扇区的前446个字节是引导程序,在BIOS的代码执行到最后时,BIOS会将这段程序加载到内存中并开始执行.后面的64字节是硬盘分区表. 从0x1BE~0x1FE 共64字节,是4个分区表项,0x1be~0x1cd为第一个分区表项,0x1ce~0x1dd为第二个分区表项,0x1de~0xed为第三个分区表项

【实战编程】编写0号中断处理程序

题目:编写0号中断处理程序,在除法溢出时,在屏幕中间显示字符串“hacker by admin!” 之前先补充一个rep movsb的指令知识 movsb和movsw是相反的,都是根据标志寄存器DF的值选择正向传递还是反向传递. 这两个指令都是把ds:si中的值传递到es:di的位置中去 如果df=0时,取正向移动.(inc si和di) 如果df=1时,取反向移动.(dec si和di) 由上可知,只需要改变si和di的值就可以选择正向还是反向 cld 指令 :使df=0:std 指令 :使d

分区里的inode号是0号和1号的block

分区里的inode号是0号和1号的block 我相信大家在使用Linux的时候都遇到过误删文件系统数据的情况,不管是自己误删还是帮人家恢复误删 现在用的比较多的恢复工具大概是ext3grep .extundelete 这两个 当然本文不是要说这两个工具的使用方法,而是介绍每个分区里的inode号为0或1号的block到底是什么 在使用ext3grep .extundelete 的时候,基本上都会有这样一个步骤 在Linux下可以通过“ls-id”命令来查看某分区目录的inode值,可以输入: [

Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)

日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建 前言 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) * idle进程由系统自动创建, 运行在内核态 idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_t

纪念一下文章被51testing推到微信公众号首页

今天早上翻看51testing的公众号,居然发现自己的文章被推到了首页~51还算是有点职业道德,把我的名字挂在了上面,感谢~ 这里挂一下文章链接 Jmeter-发送JDBC请求 原文地址:https://www.cnblogs.com/Zfc-Cjk/p/8464031.html