展开

关键词

ing

相关内容

  • CreditEase、Pinterest、Slamtec、蚂蚁金服和ING如何获得更快的迭代和生产时间

    Kubernetes赋能CreditEase、Pinterest、Slamtec、蚂蚁金服和ING克服规模扩张过程中遇到的众多挑战。https:www.cncf.iocase-study-pinterest在敏捷转型之后,ING希望标准化他们的部署过程,同时遵循公司严格的安全准则。ING使用Kubernetes和其它云原生技术构建了一个内部公有云,以标准化和加快部署过程。他们现在有能力在48小时内从创意到生产。阅读案例研究。https:www.cncf.iocase-study-ing蚂蚁金服运营规模庞大,在2017年双十一高峰期间,其全球用户超过9亿,每秒交易25.6万笔。
    来自:
    浏览:165
  • 荷兰 ING 银行从敏捷到 DevOps 的进阶之路

    一、ING 介绍?ING 是一个总部位于欧洲荷兰的银行。我们有450多个运维开发的团队,全面服务于银行业。?在 ING,IT 的角色从服务转向到战略上,不仅仅做传统的银行。
    来自:
    浏览:639
  • 广告
    关闭

    50+款云产品免费体验

    提供包括云服务器,云数据库在内的50+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到
  • 1分钟链圈 |荷兰议员就Tether与ING问题提出九大质疑;黑客在Word文档中插入脚本挖XMR

    观点高西庆:区块链发展壮大需监管立法,各国允许其生存好处大于封杀全球比利时、卢森堡、荷兰签署协议结成区块链合作联盟 荷兰国会议员就Tether与ING问题向财政部长提出九大质疑俄罗斯杜马经济政策委员会主席(华尔街见闻)2.荷兰国会议员就Tether与ING问题向财政部长提出九大质疑荷兰国会议员Henk Nijboer 在发表关于Bitfinex、Tether与ING银行关系的调查性文章后,向荷兰财政部长1.您是否熟悉这篇文章:“The Money Trail In Alleged Giant Cryptocurrency Fraud Leads To ING”?4.关于接受已经被送到其他地方的客户时,ING有哪些规则?你是否同意“在这种情况下,Tether的警报应该响起”?为什么ING继续接受Tether作为客户?5.ING在多大程度上故意配合犯罪行为?ING在扮演相关角色时荷兰的作用是什么?
    来自:
    浏览:400
  • 整理ING

    os.path.exists(img_name)(判断图片是否已经存在,如果存在就跳过)很好的一篇爬虫实例:先保存下 用MongoDB数据库记录已下载过的地址使用PyMongo模块直接代码:代码网址:http:blog.csdn.netxiexiecmarticledetails59029912 主程序:#导入需要的包 from bs4 import BeautifulSoup  import os  from BackClimb import down  from pymongo import MongoClient  import datetime   #建立一个抓图类 class mzitu():   #创建数据库调用函数 def __init__(self):          client = MongoClient()##与MongoDB建立链接,这是默认链接本地MongoDB数据库         db = client##选择一个数据库 self.meizitu_collection = db##在meinvxiezhenji这个数据库中,选择一个集合 self.title = ##用来保存页面主题 self.url = ##用来保存页面地址 self.img_urls = ##取出里面的href属性 self.url = href ##将页面地址保存到self.url中 if self.meizitu_collection.find_one({主题页面:href}): ##判断这个主题是否已经在数据库中,不在就运行eles下的内容,在则忽略。 print(u这个页面已经爬过了!)   else:   self.html(href)##调用html函数吧href参数传递过去,href是套图的地址 #设置一个函数处理套图地址获得图片的页面地址 def html(self,href):          html = down.get(href,3)##调用request函数把套图地址传进去,返回一个response         max_span = BeautifulSoup(html.text,lxml).find_all(span).get_text()##查找所有的标签获取最后一个标签中的文本也就是最后一个页面了         page_num =0 ##这个当作计数器用,用来判断图片是否下载完毕 for page in range(1,int(max_span)+1):##用range产生页面序列             page_num = page_num+1 ##每for循环一次+1,当page_num等于max_span的时候,就证明我们在下载最后一张图片了             page_url = href + +str(page)##手动拼接每一个页面地址 self.img(page_url,max_span,page_num)##调用img函数,把上面需要的两个变量,传递给下一个函数。 #设置一个函数处理图片页面地址获得图片的实际地址 def img(self,page_url,max_span,page_num):          img_html = down.get(page_url,3)##调用request函数把图片页面地址传进去,返回一个response         img_url = BeautifulSoup(img_html.text,lxml).find(div,class_=main-image).find(img)##用img_Soup对象的find方法找标签先查找class为main-image的div标签,然后查找标签里面的src。 self.img_urls.append(img_url)##每一次for page in range(1,int(max_span)+1)获取到的图片地址都会添加到img_urls这个初始化的列表中 if int(max_span) == page_num:##传递下来的两个参数用上了,当max_span和page_num相等是,就是最后一张图片,最后一次下载图片并保存到数据库中。 self.save(img_url)              post = {##这是构造一个字典, 标题:self.title,主题页面:self.url,图片地址:self.img_urls,获取时间:datetime.datetime.now()              }   self.meizitu_collection.save(post)##将post中的内容写入数据库 print (u插入数据库成功)   else: ##max_span 不等于page_num的时候执行下面这段 self.save(img_url)##调用save函数保存图片,把img_url地址传递过去 #设置一个保存图片的函数 def save(self,img_url):          name = img_url##取url的倒数第四至第九位做图片的名字 print(开始保存:,img_url)          img = down.get(img_url,3)##调用request函数把图片地址传进去,返回一个response         f = open(name+.jpg,ab)##写入多媒体文件必须要b这个参数         f.write(img.content)##多媒体文件要用conctent         f.close()##关闭文件对象 #创建一个函数用来创建文件夹 def mkdir(self,path):          path = path.strip() ##去除path前后空格         isExists = os.path.exists(os.path.join(F:mzitu,path))##join将各部分合成一个路径名。os.path.exists判断后面的路径是否存在 if not isExists: ##如果为False,创建文件夹 print(u创建了一个名字叫做,path,u的文件夹!)              os.makedirs(os.path.join(F:mzitu,path))##创建多层文件夹,用join合成单独的一个路径文件夹 return True else:   print(u名字叫做,path,u的文件夹已经存在了!)   return False # # #创建获取网页response的函数并返回 # def request(self,url): #     headers = {User-Agent:Mozilla5.0 (Windows NT 10.0; WOW64) AppleWebKit537.36 (KHTML, like Gecko) Chrome56.0.2924.87 Safari537.36}#设置浏览器请求头 #     content = requests.get(url,headers=headers) ##使用requests中的get方法获取页面的内容,加上浏览器请求头 #     return content Mzitu = mzitu()  ##实例化 #这就是入口! Mzitu.all_url(http:www.mzitu.comall)   下载模块: import requests  import re  import random  import time   #创建一个反反爬的类 class download:   def __init__(self):   self.iplist = [] ##初始化一个list用来存放获取到的ip         html = requests.get( http:haoip.cctiqu.htm)##使用requests中的get方法获取页面的内容         iplistn = re.findall(rr>(.*?)
    来自:
    浏览:345
  • LeetCode笔记 | 链表(ing)

    @1:反转一个单链表: https:leetcode-cn.comproblemsreverse-linked-list 题目描述: 反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL#解法参考1# #解法参考2#解法1:迭代法( 记录 》反转 》后移 》后移 )记录now.next,反转now.next, 后移prev,后移now;now 代表当前节点;原前驱、原后继、原方向的“原”,指“反转前”; 线性记录特性  “精兵未动,粮草先行” : 如下思路的1、 3两步, 都是为了2、 4两步执行之后,有用信息不丢失; . 想要改变now的后继,先用next将now原后继记录下来; 想要改变now,先用prev记录下来; 执行草图:?代码:** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } *class Solution { public ListNode reverseList(ListNode head) { ListNode prev = null; ListNode now = head; while (now != null) { ListNode next = now.next; next 指向now.next now.next = prev; now.next 指向prev prev = now; now = next; } return prev; }}解法思路如下:首先,ListNode head把源节点的头结点传进来;循环中四行代码,每一行的右边都是下一行的左边, 即改动前先存储(谋定而后动,重要思想!!!!), 环环相扣,安全可靠;记录now原后继now.next(因为下一步now.next就要改指向实现反转了): 先将 当前节点now反转前的下一个节点now.next 纪录下来,即ListNode next = now.next; 记录下来的原因是最后第四行要用, 让本轮的now结点能往后移动;now后继指向原前驱(核心:方向反转): 然后让当前节点反转前的下一个节点的 “指针”now.next置为反转前的上一节点prev,即now.next = prev;原前驱后移(基于原方向): 再将当前节点纪录下来,即原前驱后移,prev = now;now后移: 再让反转前当前节点的下一节点next变为当前节点now;即now = next; now != null即next不为空,表示链表还有节点未处理, 最后now == null,即链表已尽, 此时,next = now = 表尾往后一个“节点”(null), prev指向反转前最后一个节点, 也即反转后第一个节点; 跳出while循环, 所以最后return prev; 运行效果:?----解法2:递归思路如下: 0.利用递归首先找到单链表的最后一个节点; 最后一个节点存储在re里面, re在找到最后一个节点时被赋值且其永远为最后一个节点的值,保持不变; 从找到最后一个节点开始, 从最后往前的方向,每一层递归反转一对节点 一个指向;if 判断,判断是否是空链表(head == null ||)或者是否是链表的最后一个节点(递归终止条件);配置好next;next = head.next; 剪短原方向:head.next = null; 把next丢进递归; 找到最后一个节点的时候会return回来;反转一对节点 一个方向:next.next = head; 6.返回 核心同样是四行代码,(可以结合运行草图理解) 前两行不断剪除原来的指向 ListNode next = head.next;  next 指向head.next head.next = null;  剪除原来的指向 ListNode re = reverseList(next);  递归找到末节点,记录下来付给re next.next = head;  反转指向 代码:** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } *class Solution { public ListNode reverseList(ListNode head) { if(head == null || head.next==null)return head; ListNode next = head.next; head.next = null; ListNode re = reverseList(next); next.next = head; return re; }} 运行草图:?? Leetcode提交结果:?注意: 要if判断中要加上head == null ||,防止输出空链表的情况; 否则会报空指针的错:java.lang.NullPointerException----@2:两两交换链表中的节点:https:leetcode-cn.comproblemsswap-nodes-in-pairs @3:判断链表是否有环:https:leetcode-cn.comproblemslinked-list-cycle 1.哈希表 while(head != null)判断是否为表尾; nodes.add(head);如果新节点没有包含,吃进去,一直吃; 终焉两种情况, 2.1. 无环,直到head == null还没重复,false 2.2. 有环,if(nodes.contains(head))直到加到重复的,true** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } *public class Solution { public boolean hasCycle(ListNode head) { Set nodes = new HashSet(); while(head != null){ if(nodes.contains(head)) return true; else nodes.add(head); head = head.next; } return false; }}复杂度分析时间复杂度:O(n)O(n),对于含有 nn 个元素的链表,我们访问每个元素最多一次。添加一个结点到哈希表中只需要花费 O(1)O(1) 的时间。空间复杂度:O(n)O(n),空间取决于添加到哈希表中的元素数目,最多可以添加 nn 个元素。?2.双指针:public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode slow = head; ListNode fast = head.next; while (slow != fast) { if (fast == null || fast.next == null) { return false; } slow = slow.next; fast = fast.next.next; } return true;}空链表 head == null , 一节点链表 head.next == null , 无环 if (head == null || head.next == null) { return false; }初始化,快前慢后 ListNode slow = head; ListNode fast = head.next;没有追上,就一直跑 while (slow != fast) ... slow = slow.next; fast = fast.next.next;终焉两种情况: 3.1. 有环,迟早追上 slow == fast 跳出循环,true;3.2. 无环,快针迟早到链尾,flase if (fast == null || fast.next == null) { return false; }fast == null 跑过头了到尾结点的next; fast.next == null 刚刚好跑到尾结点 ? 复杂度分析 时间复杂度:O(n)O(n),让我们将 nn 设为链表中结点的总数。为了分析时间复杂度,我们分别考虑下面两种情况。链表中不存在环: 快指针将会首先到达尾部,其时间取决于列表的长度,也就是 O(n)O(n)。链表中存在环: 我们将慢指针的移动过程划分为两个阶段:非环部分与环形部分:慢指针在走完非环部分阶段后将进入环形部分:此时,快指针已经进入环中 text{迭代次数} = text{非环部分长度} = N迭代次数=非环部分长度=N两个指针都在环形区域中:考虑两个在环形赛道上的运动员 - 快跑者每次移动两步而慢跑者每次只移动一步。其速度的差值为 1,因此需要经过 dfrac{text{二者之间距离}}{text{速度差值}} 速度差值 二者之间距离 ​ 次循环后,快跑者可以追上慢跑者。这个距离几乎就是 text{环形部分长度 K}环形部分长度 K 且速度差值为 1,我们得出这样的结论 text{迭代次数} = text{近似于}迭代次数=近似于 text{环形部分长度 K}环形部分长度 K.因此,在最糟糕的情形下,时间复杂度为 O(N+K)O(N+K),也就是 O(n)O(n)。空间复杂度:O(1)O(1),我们只使用了慢指针和快指针两个结点,所以空间复杂度为 O(1)O(1)。@4:环形链表:https:leetcode-cn.comproblemslinked-list-cycle-ii @5:每 k 个节点一组翻转链表:https:leetcode-cn.comproblemsreverse-nodes-in-k-group
    来自:
    浏览:153
  • 小程序开发快速入门教程(附源码)小程序初始化目录:我是分割线===开发ing示例步骤:

    图片.png我是分割线===开发ing接下来就要开始开发了,我是第一次开发微信小程序,所以显得特别的生疏,以至于无从下手,纠结了很久,找朋友要了一套模板,导入自己的小程序开发工具里面,对整个小程序目录文件结构有了一定的了解
    来自:
    浏览:541
  • FFMPEG常用命令----ing

    来自:
    浏览:262
  • Hive基本操作(持续更新ing)

    来自:
    浏览:112
  • 8-14 Android学习ing

    1.异常java.lang.RuntimeException: Unable to instantiate activity ComponentInfo解决方法http:www.linuxidc.comLinux2013-0889446.htm 参考了第二种,改变了package 的名字2. @Override@Override是伪代码,表示重写(当然不写也可以),不过还是建议你写上,有如下好处:     1>可以当注释用,方便阅读     2>编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错       比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的 子类中自己增加的方法)3. 定义线程的2种方式继承Thread 实现runableclass MyThread extends Thread{  @Override  public void run() {    TODO Auto-generated method stub   super.run();  } }class MyThread1 implements Runnable{  @Override  public void run() {    TODO Auto-generated method stub  } }4.静态方法,不能直接使用非静态成员变量,不能直接调用非静态方法5.new User();jre种的类载入容器沿着classpath路径招待User类并把该类载入内存,而后根据类创建对象
    来自:
    浏览:148
  • 8-15 Android 学习ing

    1.match_parent过去只有FILL_PARENT和WRAP_CONTENT那么match_parent到底是什么类型呢? 其实从Android 2.2开始FILL_PARENT改名为MATCH_PARENT ,从API Level为8开始我们可以直接用MATCH_PARENT来代替FILL_PARENT,最后Android123提醒大家,他们的定义本质是一样均为-1,只是换了个别名,可能为了更准确些,比如最终在SDK中的定义为: fill_parent   -1  The view should be as big as its parent (minus padding). This constant is deprecated starting from API Level 8 and is replaced by match_parent.  match_parent   -1 The view should be as big as its parent (minus padding). Introduced in API Level 8.  wrap_content   -2  The view should be only big enough to enclose its content (plus padding).  2.Android积累之《Wrong orientation? No orientation specified, and the default is horizontal, yet this la:》 Wrong orientation? No orientation specified, and the default is horizontal, yet this layout has multiple children where at least one has layout_width=match_parent 解决方法: 在android:text=就不时上面老是报错那个错误,是由于你的一行代码还没有加入到那个标签中的,只需加上这一行代码即可解决这个难题   android:orientation=horizontal 有人会问当用了android:orientation=horizontal运行之后界面只显示一个而自己写了4个这是因为它的属性是为垂直线性布局的,所以只有一个显示。 解决办法: 改为下面的布局 android:orientation = vertical 3.私有操作模式 创建出来的文件只能被本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容 4.openFileOutout() 这个方法的第一参数用于指定文件名称,不能包含路径分隔符“”,如果文件不存在,android会自动创建它,创建的文件保存在datadatafiles目录下 5.操作模式 Context.MODE_PRIVATE:默认操作模式,代表该文件时私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件中追加内容,否则创建新文件 MODE_WORLD_READABLE:表示当前文件可以被其他应用读取 MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入
    来自:
    浏览:193
  • 8-18 Android学习ing

    1.shared Preferences(偏好参数保存)getSharedPreferences(1234, Context.MODE_PRIVATE)  之中的名字不能带有后缀名,比如1234.xml使用SharedPreferences 保存时,文件灰以xml的格式保存在datadatashared_prefs目录下2.Wrong orientation? No orientation specified, and the default is horizontal, yet this layout has multiple  children where at least one has layout_width=match_parenthttp:blog.csdn.netmengzhengjiearticledetails91703293. preferences.getString(name, defValue);defValue如果所读取文件中不存在name参数,则返回默认值defValue4.使用嵌入式关系型SQLite数据库的存储数据在Android平台上,集成了一个嵌入式关系型数据库SQLite,SQLite3支持NULL,INTEGER,REAL(浮点数字),TEXT(字符串文本)和BLOB(二进制对象)数据类型。虽然它支持的类型只有5中,实际上也接受vrachar(n),char(n),decimal(p,s)等数据类型,只不过在运算或保存时会转成对应的五种数据类型。SQLite最大的特点是可以吧各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型。例外:定义为INTEGER PRIMARY KEY字段只能存储64位整数,当像这种字段保存整数以外的数据时,将会产生错误。创建的数据库会默认保存在database5.db does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare uses-library android.test.runner in its AndroidManifest.xml在 AndroidManifest.xml文件中没有配置 注意上面这句话的配置在里面 6.getWritableDatabase()与getReadableDatabase(); 数据库未满是,通过getReadableDatabase()从中读取到的数据与getWritableDatabase()得到的一样,但是数据库慢的情况下使用getReadbleDatebase(),因为不需要向数据库中写入数据,通过getWritableDatabase()无法读出数据,如果知识读取数据的话,推荐使用getReadableDatabase() 7.使用SQLiteDatabase操作SQLite数据库 除了execSQL()和rawQuery()之外,SQLiteDatabase还专门提供了对应于添加,删除,更新,查询的操作方法:insert(),delete(),update(),query();
    来自:
    浏览:186
  • 8-16Android 学习ing

    1.SQLite事务结束事务有两种情况,commit和rollback事务的提交或者回滚是由事务的标志决定的,如果事务标志位True,事务就会提交,否则回滚,默认情况下事务的标志位FalsebeginTransaction()开启事务endTransaction()结束事务setTransactionSuccessful()设置事务标志为True2.Cursorhttp:www.2cto.comkf201109103163.html3.使用SimpleCursorAdapter适配器时出现的问题:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dbcom.example.db.MainActivity}: java.lang.IllegalArgumentException: column _id does not exist      原因   Caused by: java.lang.IllegalArgumentException: column _id does not exist解决方法:1)改变数据库表结构 ,将id改为_id  2)将查询 语句改成 select personid as _id,name,phone,amount from person.....4.导入包import android.support.v7.internal.widget.AdapterViewICS.OnItemClickListener;出现错误import android.support.v7.internal.widget.AdapterViewICS.OnItemClickListener;解决方法将其替换为import android.widget.AdapterView.OnItemClickListener;即可解决问题5.getItemAtPosition(position)调用适配器中的getItem()6.内容提供者Content Provider在android系统,对外共享数据使用,其他应用可以通过内容提供者访问应用中的数据,也可以对应用中的数据进行增删改查,在应用中的作用是对外共享数据,如:android应用中的通讯录.共享的数据可以是任意类型的数据。文件存取类型不同,使用的API不同。数据的访问会因为存储方式不同而不同。使用数据提供者的好处就是统一了数据访问的方式7.UriUri代表了要操作的数据,包含了两部分的信息(1)需要操作的内容提供者(2)对内容提供者中的什么数据进行操作如:content:cn.wd.providers.personproviderperson10      scheme                 主机名或Authority         路径     IDUri的scheme已经被android所规定,为content:public Cursor query(Uri uri, String selectionArgs, String sortOrder)供外部的应用查询内容提供者的数据getType(Uri uri)返回目前所要操作的数据类型访问内容提供者需要用到ContentResolver对象getType() :如果所要操作的数据是集合类型,MIME类型字符串应该以vnd.android.cursor.dir开头,如果所要操作的数据类型是非集合类型(一条数据),应该以vnd.android.cursor.item开头
    来自:
    浏览:166
  • 8-21Android 学习ing

    1.模拟器输入中文产生乱码的原因(1)在提交参数的时候,没有对中文参数进行URL编码(2)Tomcat服务器默认采用的是ISO8859-1编码得到的参数值,这种编码不支持中文,也会导致乱码2.conn.setDoOutput(true);允许对外输出
    来自:
    浏览:168
  • 8-22 Android 学习ing

    1.SOAP协议简单访问对象协议2.多线程下载原理(1)首先获取网络文件的长短,然后再Android客户端生成一个网络文件长度相等的本地文件(2)开启N条线程下载文件,,计算每条线程负责下载的数据量,公式如下:int block = 文件长度%N==0?文件长度、N:文件长度、N+1(3)开启多条线程分别从网络文件的不同位置下载数据,并从本地文件相同的位置写入数据,要计算出每条线程从网络文件的什么位置开始下载数据,到什么位置结束计算每条线程从网络文件的哪个位置开始哪个位置结束:int start = threaid * block           int  end = (threaid + 1) * block - 13.分段下载请求码不是200分段下载请求码是206不是2004.进度条环形进度条---不确定进度条  没有最大刻度水平进度条---确定进度条  最大值是需要确定的
    来自:
    浏览:125
  • 8-25 Android 学习ing

    1.Intent激活 新的activity激活组件,附带数据设置要激活的组件      显式Intent1>intent.setClass(this,OtherActivity.class)2>intent.setClassName(this,packagename.OtherActivity)3>intent.setComponent(new ComponentName(this,OtherActivity.class))4>Intent intent = new Intent(this,OtherActivity.class) 两个activity之间传递参数1>intent传递参数,新activity getIntent()2>bundle对象传递参数2.activity的启动模式LaunchMode1>standard这是默认模式,每次激活activity时,每次都会创建activity实例,并且放入任务栈中2>singleTop如果在任务的栈顶正好存在该Activity的实例,就重用该实例(调用实例的onNewIntent()),否则就会创建新的实例,并且放入栈顶(ps:及时栈中存在该activity的实例,只要不在栈顶,就会创建实例)3>singleTask如果在栈中已经有该activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移出栈。如果栈中不存在该实例,将会创建新的实例放入栈中4>singleInstance在一个新栈中创建该Activity的实例,并且让多个应用共享该栈中的Activity实例。一旦该模式的Activity的实例已经存在于某个栈中,任何再激活该Activity时都会重用该栈中的实例(会调用实例的onNewIntent()),其效果相当于多个应用共享一个应用,不管谁激活该Activity都会进入同一个应用中。3.IntentAndroid基本的设计理念是鼓励减少组件之间的耦合,因此Android提供了Intent(意图),Intent提供了一种通用的消息系统,它允许在你的应用程序与其它应用程序之间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用三种类型的核心组件:活动、服务和广播接收者Intent可以划分为显示意图和隐式意图显式意图:调用Intent.setComponent()或者intent.setClassName()或者intent.serclass()方法指定了组件名的Intent为显式意图,显式意图明确指定了要激活的组件是哪个组件隐式意图:没有明确指定组件名的Intent为隐式意图。Android系统会根据隐式意图中设置的动作(action)类别(category)数据(URL和数据类型)找到最适合的组件来处理这个意图。查找规则如下: 4.Activity的生命周期Activity有三个状态当Activity在屏幕前台的时候(位于当前任务堆栈的顶部),它处于激活或者运行状态,可以响应用户操作当Acitvity上边有另外一个Activity,上面的Activity没有完全覆盖它,或者上面的activity是透明的,这是下方的activity对用户可见,下方的保持暂停状态,如果系统内存不足时会杀死这个activity当activity完全被另外一个activity覆盖时处于停止状态,仍然保留所有的状态和成员信息,但是对用户不可见,它的窗口被完全隐藏,如果其他地方需要内存,系统会杀死这个activityactivity从一种状态转变为另一种状态的时候,会调用以下保护方法来通知这种变化:void onCreate(Bundle savedInstanceState)void onStart()void onRestart()void onResume()void onPause()void onStop()void onDestroy()
    来自:
    浏览:193
  • 8-26 Android学习ing

    1.应用的响应性(Responsive)在Android中,应用的响应性被活动管理器(Activity Manager)和窗口管理器(Window Manager)这两个系统服务所件事。当用户触发了输入事件(如键盘输入,点击按钮等),如果应用5秒内没有响应用户的输入事件,那么,Android灰认为该应用无响应,便弹出ANR(Application No Response)对话框在正常情况下,Android程序会在一条单线程里运行。如果Activity要处理一件比较耗时的工作,应该交给子线程完成,否则会因为主线程被阻塞,后面的用户输入事件因没能在5秒内响应,导致应用出现ANR对话框2.广播接收者(Broadcast Receiever)广播接收者(Broadcast Receiever)用于接收广播Intent,广播Intent的发送时通过调用Context.sendBroadcast()  Context.sendOrderedBroadcast()来实现的。通常一个广播的Intent可以被订阅了此Intent的多个广播接收者所接收这个特性跟JMS中的Topic消息接收者类似。3.广播接收者的响应性在Android中,每次广播消息到来时都会创建BroadcastReceiver实例并且执行onReceive()方法,onReceive()方法执行完后,BroadcastReceiver的实例就会被销毁。当onReceive()方法在10秒内没有执行完毕,Android会认为该程序无响应,所以在BroadcastReciever里边不能做一些比较耗时的操作,否则会弹出ANR错误对话框。如果需要完成一项比较耗时的工作,应该通过发送Intent给Service,由Service来完成,这里不能使用子线程来解决,因为BroadcastReceiver的生命周期很短,子线程可能还没有结束BroadcastReceiver就先结束了。BroadcastReceiver一旦结束,此时BroadcastReceiver所在的进程很容易在系统需要内存时被优先杀死,因为它属于空进程(没有任何活动组件的进程)。如果它所在的进程被杀死,那么正在工作的子线程也会被杀死,所以采用子线程来解决是不可靠的。4.服务---ServiceAndroid中的服务类似于windows中的服务,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序,服务的开发比较简单第一步 :继承Service类public class SMSService extends Service{}第二步: 在AndroidManifest.xml文件中的节点里对服务进行配置: 服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。这两个方法都可以启动Service,但是他们使用场合有所不同。使用startService()方法启动服务,访问者与服务之间没有关联,即使访问者退出了,服务仍然运行。使用bindService()方法启动服务,访问者同服务绑定在一起,访问者一旦退出,服务也就终止。采用Context.startService()方法启动服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法
    来自:
    浏览:171
  • JQ-动画合集(ing...)

    一:给向上按钮加动画,让页面卷回上面而不是生硬跳转.js$(#topBtn).click(function(){ $(html,body).animate({scrollTop: 0px}, 1000); return false; });给向上按钮加一个animate的动画,控制scrolltop属性变为零,在1秒内,(可以加一个$()包起来,当其所在的js页面中有这个设置后,直接copy进去就ok了) 二:tab选项卡,用jq实现$(菜单标签名).click(function(){ $(this).addClass(hover时的样式名字).siblings().removeClass(hover时的样式名字); var index=$(this).index(); $(对应标签出现的内容区域).eq(index).show().siblings().hide();});例子:1 $(.title li).click(function(){2 $(this).addClass(on).siblings().removeClass(on);3 var index=$(this).index();4 $(.div_tab > div).eq(index).show().siblings().hide();5 });有空再继续填补,有点高中一点一点补笔记本的感觉,每天学到的补一点,到了高考,我的笔记本是最烂的。额。。。。
    来自:
    浏览:483
  • redis基本操作命令整理ING

    服务器相关命令 命令 介绍 select database 选择数据库(Redis 数据库编号从 0~15) quit 退出 echo msg 打印msg dbsize 返回当前数据库中 key 的数目` info 获取服务器的信息和统计 flushdb 删除当前选择数据库中的所有 key flushall 删除所有数据库中的所有 key
    来自:
    浏览:177
  • 8-20 Android学习ing

    1.this.getContext().getContentResolver().notifyChange(uri,null) 发出数据变化通知,null表示没有必须要通知的观察对象2. android:text=http:localhost:8080webgg.gif这样访问不了本机的web应用操作系统会认为访问本系统内部的web应用。而这个是android上的,应该使用局域网的IP运行cmd,输入ipconfig查看3.图片不在横或竖或45时会出现锯齿setAntiAlias(true)抗锯齿的作用canvas.setDrawFilter(new PaintFlagsDrawFilter(0,Paint.ANTI_ALIAS_FLAG| Paint.FILTER_BITMAP_FLAG));通过对canvas面板加一个过滤器的方式来实现抗锯齿,第一个FLAG代表画笔的抗锯齿效果,第二个代表位图的抗锯齿
    来自:
    浏览:135
  • Docker 入门全解(更新 ing)

    1.2 容器技术概述聊聊容器技术????????????
    来自:
    浏览:196

扫码关注云+社区

领取腾讯云代金券