onnewintent

android onNewIntent

为君一笑 提交于 2020-03-27 10:19:56
pendingIntent字面意义:等待的,未决定的Intent。   pendingIntent对象,使用方法类的静态方法 :       getActivity(Context, int, Intent, int) -------> 跳转到一个activity组件、      getBroadcast(Context, int, Intent, int)------>打开一个广播组件     getService(Context, int, Intent, int) --------> 打开一个服务组件。   分别对应着Intent的3个行为和参数有4个,比较重要的事第三个和第一个,其次是第四个和第二个。可以看到,要得到这个对象,必须传入一个Intent作为参数,必须有context作为参数。   pendingIntent是一种特殊的Intent。主要的区别在于Intent的执行立刻的,而pendingIntent的执行不是立刻的。pendingIntent执行的操作实质上是参数传进来的Intent的操作,但是使用pendingIntent的目的在于它所包含的Intent的操作的执行是需要满足某些条件的。 主要的使用的地方和例子:通知Notificatio的发送,短消息SmsManager的发送和警报器AlarmManager的执行等等。 intent英文意思是意图

Android中Activity启动模式详解

£可爱£侵袭症+ 提交于 2020-01-11 07:28:02
  在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。   Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /> Activity的四种启动模式: 1. standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2. singleTop 如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。 3. singleTask 如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。 4. singleInstance 在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中

onNewIntent not called on restart

天大地大妈咪最大 提交于 2019-12-12 18:09:46
问题 I have an alarm clock app, that is using Alarm Manager and a Broadcast Receiver. The app is one single activity and 4 fragments. When an alarm goes off the onReceive method sends an intent to the main activity, the main activity receives this intent in the method onNewIntent and then moves to the correct fragment. Everything works fine, except when an alarm goes off after the app has been closed. Once I destroy the app, the alarm still goes off and the intent from the broadcast receiver fires

android - NFC in fragments, onNewIntent isn't called after I return from another activity

一笑奈何 提交于 2019-12-11 18:25:18
问题 I have an application that uses the NFC. I have a MainActivity that extends a BaseActivity. In the BaseActivity, on the "onCreate" method, I initialize the nfc. ---- Base Activity ---- .... private void initializeNfc() { NfcManager manager = (NfcManager) getSystemService(NFC_SERVICE); nfcAdapter = manager.getDefaultAdapter(); IntentFilter filterNdef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); try { filterNdef.addDataScheme(CipherClient.nfcDataScheme()); filterNdef.addDataAuthority

Android组件体系之Activity启动模式解析

泄露秘密 提交于 2019-12-07 20:37:28
本文主要分析Activity的启动模式及使用场景。 一、Activity启动模式浅析 1、standard 标准模式,系统默认的启动模式。在启动Activity时,系统总是创建一个新的Activity实例。其缺点是:复用性差、占用内存,当Activity已经在栈顶时,还是会创建实例。 2、singleTop 这种模式可以实现栈顶复用的效果。 如果目标Activity已经存在于栈顶,则调用实例的 onNewIntent,否则创建一个新的实例,可以用于通知启动的内容显示,例如新闻客户端的内容页面。信息类应用的列表Activity往往也会使用这种启动模式,例如,收到新短信时,如果信息列表Activity已经在栈顶了,则直接调用其onNewIntent,而不需要创建新的Activity。 该模式下,当Activity不在栈顶时,还是会创建新的实例。例如A、B、C三个Activity处于一个任务栈中,且C在栈顶,如果C启动A,则会创建一个新的实例并置于栈顶,使得当前任务栈有两个A实例。 3、singleTask 该模式实现栈内复用的效果。如果栈内已经有目标Activity实例,则清除目标Activity上面的所有Activity、使得目标Activity直接放到栈顶,并调用目标Activity的onNewIntent方法;否则创建一个新的Activity实例。 补充

NFC的应用

懵懂的女人 提交于 2019-12-07 11:30:18
NFC的应用 NFC和RFID 什么是NFC? NFC标签是什么? ISO10536,ISO15693,ISO14443的区别 NFC支持3种工作模式 基础知识 Android中的NFC 主要代码 NFC和RFID RFID是射频识别技术,它主要是通过无线电讯号识别特定目标,并可读写数据,但仅仅是单向的读取。 RFID有低频(几mm的传输距离)、高频(13.56Mhz)、超高频(防碰撞算法、低功耗芯片设计、UHF电子标签天线设计、测试认证)、微波频段等,频段不同,导致功率不同,导致传输的距离不同。 NFC是近距离无线通讯技术,芯片具有相互通信能力,并有计算能力。NFC可以看作是RFID的子集,用的是RFID的高频(13.56MHz)的标准,但却是双向过程。 他们的区别基于两点。 首先,NFC技术增加了点对点通信功能,可以快速建立蓝牙设备之间的无线通信.NFC设备彼此寻 找对方进而建立通信连接。在通信模式上,NFC不同于RFID网络,后者是建立于主从关系之下,并且芯片以被动的方式通过昂贵的、需要能源支持的“读取”设备来读取。而NFC设备却能被设置为被动和主动两种模式,即使在设备关机的情况下(被动模式),仍然可以发送识别数据,也正是这一特点使其成为智能卡应用的理想选择。同时,它也可在主动模式下,与其他主动或被动的RFID设 备进行通信。 其次,NFC和RFID针对的应用不同

NFC开发入门篇

﹥>﹥吖頭↗ 提交于 2019-12-07 11:29:50
之前做过一些关于NFC的项目,比如手机羊城通卡芯片的充值,粤通卡的充值(与微信的羊城通充值功能类似),NFC功能是需要硬件的支持的,不过现在越来越多手机支持NFC功能了,所以这里简单的介绍它的开发流程吧。 一、NFC简介 NFC(Near Field Communication)近距离无线通信技术。工作模式分为两种:卡模式(Card emulation)、点对点模式(P2P mode)。这里主要是介绍卡模式的的开发,卡模式的开发又分为机卡通道和非机卡通道两种,机卡通道就是手机卡里面集成了相关的芯片,一卡多用,卡离开手机之后无法工作,比如手机卡里面又附带羊城通的芯片的功能,这样既可以打电话又可以刷公交和地铁。非机卡通道就是卡和手机是分开使用的,就是平常使用单独一张公交卡一样。 二、开发流程 1、非机卡通道模式 (1)在AndroidManifest.xml中声明权限 < uses-permission android:name = ”android.permission.NFC” /> < uses-feature android:name = ”android.hardware.nfc” android:required = ”true” /> (2)在AndroidManifest.xml 中的activity中声明可以处理的NFC Tag。 当手机开启了NFC

【Launcher小知识点】home按键监听

匿名 (未验证) 提交于 2019-12-03 00:37:01
监听广播 在我们每次点击Home按键时系统会发出action为Intent.ACTION_CLOSE_SYSTEM_DIALOGS的广播,用于关闭系统Dialog,此广播可以来监听Home按键。而我们的Launcher也是这样做的。在Launcher的onCreate中: private class CloseSystemDialogsIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { closeSystemDialogs(); Log.i("Launcher","closeSystemDialogs"); } } onUserLeaveHint方法 /** * 此方法当用户点击home键或者menu键离开launcher应用时调用 */ protected void onUserLeaveHint() { super.onUserLeaveHint(); sPausedFromUserAction = true; Log.i(TAG,"onUserLeaveHint"); } 导航栏home按键触发intent mHomeIntent = new Intent(Intent.ACTION_MAIN, null);

使用极光推送同时推送多条消息,且都打开同一界面时遇到的问题

匿名 (未验证) 提交于 2019-12-03 00:32:02
使用激光推送推送多条消息,且它们打开的都是同一个含有webview的activity,用webview显示不同信息。 无论是Standard模式还是singleTask模式都不会刷新页面,即如图片中那样,我在测试2页面直接点击测试3的通知,没有任何反应,页面没有刷新数据。 解决办法是使用singleTask模式会调用onNewIntent方法,我们在onNewIntent中设置intent, setIntent(intent) ; 不设置这个的话获取到的intent的是以前的intent,没法获取到最新的intent。 我们设置了 setIntent(intent) ;之后就可以获取到intent传过来的数据,对数据进行刷新了,也可直接在onNewIntent()中进行数据刷新。 文章来源: 使用极光推送同时推送多条消息,且都打开同一界面时遇到的问题

android - NFC in fragments, onNewIntent isn't called after I return from another activity

三世轮回 提交于 2019-12-02 21:57:43
问题 I have an application that uses the NFC. I have a MainActivity that extends a BaseActivity. In the BaseActivity, on the "onCreate" method, I initialize the nfc. ---- Base Activity ---- .... private void initializeNfc() { NfcManager manager = (NfcManager) getSystemService(NFC_SERVICE); nfcAdapter = manager.getDefaultAdapter(); IntentFilter filterNdef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED); try { filterNdef.addDataScheme(CipherClient.nfcDataScheme()); filterNdef.addDataAuthority