Android中使用Notification并通过点击Notification重新启动Activity

  次阅读 作者:智能小宝 来源:互联网 2015-10-02 21:52 我要评论(0)

我们在使用别的软件的时候,经常会看到在手机的最头部有一个小图标,表示程序依然在启动着。比如一些音乐播放软件天天动听,还有服务程序正点工具箱,还有腾讯QQ等。本文就带您来了解一些如何做到这些功能。

相关知识点为:

NotificationManager,getSystemService,NOTIFICATION_SERVICE,getBaseContext,Notification,

Class.forName,setFlags,FLAG_ACTIVITY_SINGLE_TOP,PendingIntent,setLatestEventInfo,FLAG_ONGOING_EVENT,notify,cancel.

效果图:

我们先上代码:

//两个参数,第一个为一个图标的ID,第二个为一个字符串对应的ID

public void StartNM(int icoID,int strID)

{

//获取到系统服务中的通知服务NOTIFICATION_SERVICE

nManager = (NotificationManager)getSystemService(getBaseContext().NOTIFICATION_SERVICE);

//将字符串传化为Notification所需用的格式CharSequence

CharSequence str = getBaseContext().getText(strID);

//新建一个通知对象

Notification notification = new Notification(icoID,str,System.currentTimeMillis());

Intent intent = null;

try {

intent = new Intent(this,Class.forName("com.jouhu.gpsservice.GPSServiceActivity"));

intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

//PendingIntent为一个特殊的Intent,通过getBroadcast或者getActivity或者getService得到.

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

notification.setLatestEventInfo(this, str, str, pendingIntent);

notification.flags |= Notification.FLAG_ONGOING_EVENT;

//启动通知事件

nManager.notify(strID, notification);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//

public void StopNM(int strID)

{

//获取到系统服务中的通知服务NOTIFICATION_SERVICE

nManager = (NotificationManager)getSystemService(getBaseContext().NOTIFICATION_SERVICE);

nManager.cancel(strID);

}

在我们的按钮事件里面通过以下方法就可以启动和关闭了。

StartNM(R.drawable.logo,R.string.app_name);

//以及

StopNM(R.string.app_name);

里面还涉及到一些步骤。

1 制作一个16 * 16 的logo.PNG文件放到res/drawable-hdpi,res/drawable-ldpi,res/drawable-mdpi文件夹中,刷新本项目,在gen/com.jouhu/gpsservice中就会生成一个logo的id了,程序中就可以使用R.drawable.logo调用了

2 注意,我们需要使用类的全名来创建这个Intent,否则会出现找不到的情况。

new Intent(this,Class.forName("com.jouhu.gpsservice.GPSServiceActivity"));

3 注意要加这个代码

intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...