2 yjb5173love yjb5173love 于 2015.06.16 11:35 提问

Android开发怎么实现退出客户端后也能点击屏幕顶端(状态栏位置)启动一个特定的应用程序

想要实现退出客户端后也能点击屏幕顶端(状态栏位置)启动一个特定的应用程序,这个app怎么做?
主要是实现不了退出应用程序后也能监听点击事件,以及service怎么响应该点击事件,跪求大神。

3个回答

lzp_lrp
lzp_lrp   Ds   Rxr 2015.06.17 17:12

如果退出程序还需要监控的话,就需要捕捉系统的通知了

 以下代码是android 判断点击的位置是不是在指定的view上

修改为判断点击的位置是不是在状态栏上,如果是的话,就执行指定的操作

private boolean inRangeOfView(View view, MotionEvent ev){
    int[] location = new int[2];
    view.getLocationOnScreen(location);
    int x = location[0];
    int y = location[1];
    if(ev.getX() < x || ev.getX() > (x + view.getWidth()) || ev.getY() < y || ev.getY() > (y + view.getHeight())){
        return false;
    }
    return true;
}
lzp_lrp
lzp_lrp 回复yjb5173love: 状态栏被点击目前没有相应的广播,建议发送一个通知到状态栏,这样点击后就可以调用你自己的程序了
2 年多之前 回复
yjb5173love
yjb5173love 找了好久找不到状态栏被点击的时候系统发出的广播啊,您知道吗?
2 年多之前 回复
yjb5173love
yjb5173love 谢谢你,我尝试一下看看
2 年多之前 回复
liangquewei
liangquewei   2015.06.16 12:55

应该要用到Android中的BroadcastReceiver,让它来监听系统发出的相应广播消息,但是点击屏幕顶端(状态栏位置),系统会发出什么广播,这个得查查。你讲得具体点,是想像手机QQ那样面,最小化后,状态栏上有个小图标,然后下拉状态栏面板后,可以点击它的那个最小化状态再打开它

yjb5173love
yjb5173love 唉,老板好奇葩,提出这样的需求,看到现在有一个叫做“触键”的软件有这样的功能,让我也做一个。。。
2 年多之前 回复
yjb5173love
yjb5173love 唉,老板好奇葩,提出这样的需求,看到现在有一个叫做“触键”的软件有这样的功能,让我也做一个。。。
2 年多之前 回复
yjb5173love
yjb5173love 其实就是想实现在任何界面点击屏幕顶端那个位置能够打开一个程序 例如qq,而不是下拉状态栏后点击打开,如果需求是下拉后就好办了。
2 年多之前 回复
liangquewei
liangquewei   2015.06.16 12:58

显示图标在状态栏上 ,参考

NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification n = new Notification(
resId, "Floats Start!", System.currentTimeMillis());

// 将此通知放到通知栏的"Ongoing"即"正在运行"组中
n.flags |= Notification.FLAG_ONGOING_EVENT;
// 表明在点击了通知栏中的"清除通知"后,此通知不清除,
// 经常与FLAG_ONGOING_EVENT一起使用
n.flags |= Notification.FLAG_NO_CLEAR;

PendingIntent pi = PendingIntent.getActivity(this, 0, getIntent(), 0);
n.contentIntent = pi;
n.setLatestEventInfo(this, "FloatsWindow", "start!", pi);
nm.notify(NOTIFICATION_ID_ICON, n);

Csdn user default icon
上传中...
上传图片
插入图片