zoukankan      html  css  js  c++  java
  • 8-25 Android学习笔记

    1.Intent激活 新的activity

    激活组件,附带数据

    设置要激活的组件 显式Intent

    1>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的启动模式LaunchMode

    1>standard

    这是默认模式,每次激活activity时,每次都会创建activity实例,并且放入任务栈中

    2>singleTop

    如果在任务的栈顶正好存在该Activity的实例,就重用该实例(调用实例的onNewIntent()),否则就会创建新的实例,并且放入栈顶(ps:及时栈中存在该activity的实例,只要不在栈顶,就会创建实例)

    3>singleTask

    如果在栈中已经有该activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移出栈。如果栈中不存在该实例,将会创建新的实例放入栈中

    4>singleInstance

    在一个新栈中创建该Activity的实例,并且让多个应用共享该栈中的Activity实例。一旦该模式的Activity的实例已经存在于某个栈中,任何再激活该Activity时都会重用该栈中的实例(会调用实例的onNewIntent()),其效果相当于多个应用共享一个应用,不管谁激活该Activity都会进入同一个应用中。

    3.Intent

    Android基本的设计理念是鼓励减少组件之间的耦合,因此Android提供了Intent(意图),Intent提供了一种通用的消息系统,它允许在你的应用程序与其它应用程序之间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用三种类型的核心组件:活动、服务和广播接收者

    Intent可以划分为显示意图和隐式意图

    显式意图:调用Intent.setComponent()或者intent.setClassName()或者intent.serclass()方法指定了组件名的Intent为显式意图,显式意图明确指定了要激活的组件是哪个组件

    隐式意图:没有明确指定组件名的Intent为隐式意图。Android系统会根据隐式意图中设置的动作(action)类别(category)数据(URL和数据类型)找到最适合的组件来处理这个意图。查找规则如下:

    <intent-filter>

    <action android :name="android.intent.action.CALL"/>

    <category android:name="android.intent.category.DEFAULT"/>

    <data android:scheme="tel"/>

    </intent-filter>

    <intent-filter>

    <action android:name="android.intent.action.CALL"/>

    <category android:name="android.intent.category.DEFAULT"/>

    <data android:mimeType="vnd.android.cursor.item/phone"/>

    </intent-filter>

    4.Activity的生命周期

    Activity有三个状态

    当Activity在屏幕前台的时候(位于当前任务堆栈的顶部),它处于激活或者运行状态,可以响应用户操作

    当Acitvity上边有另外一个Activity,上面的Activity没有完全覆盖它,或者上面的activity是透明的,这是下方的activity对用户可见,下方的保持暂停状态,如果系统内存不足时会杀死这个activity

    当activity完全被另外一个activity覆盖时处于停止状态,仍然保留所有的状态和成员信息,但是对用户不可见,它的窗口被完全隐藏,如果其他地方需要内存,系统会杀死这个activity

    activity从一种状态转变为另一种状态的时候,会调用以下保护方法来通知这种变化:

    void onCreate(Bundle savedInstanceState)

    void onStart()

    void onRestart()

    void onResume()

    void onPause()

    void onStop()

    void onDestroy()

  • 相关阅读:
    VirtualBox4.3.12 安装ubuntu 14.04 分辨率过小(600*480)问题的解决方法
    asp.net 权限管理系统
    rdlc 格式设置
    Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=11.0.0.0 异常处理
    Asp.Net Web Forms/MVC/Console App中使用Autofac
    Mysql优化小记1
    Zyan 一个通信框架
    RDLC
    通过.NET客户端异步调用Web API(C#)
    ECharts问题--散点图中对散点添加点击事件
  • 原文地址:https://www.cnblogs.com/danwang/p/3935407.html
Copyright © 2011-2022 走看看