可以用来捋一捋自己所学的知识。

1, 认识 Android 中的 Activity 组件

1.1 Activity 是什么

图形界面

1.2 Activity绑定自定义视图

在protected void onCreate(){

中 setContentView(R.layout.my_layout);

}

1.3 启动另一个 Activity

定义一个Activity需要什么:

1,一个java类,继承自activity。

2,一个layout.xml 文件,定义界面。

3,在 AndroidManifest.xml 中是声明 这个activity。

启动一个activity。调用 startActivity(new Intent(MainActivity.this, AnotherAty.class));

好玩的,启动一个网页

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("www.baidu.com")));   //这里被懵逼的crash了,提示如下错误原因:

05-06 03:02:27.133: E/AndroidRuntime(808): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=www.baidu.com }
05-06 03:02:27.133: E/AndroidRuntime(808):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
05-06 03:02:27.133: E/AndroidRuntime(808):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)

一脸的懵逼,这是啥错误。原来是因为Uri.parse("www.baidu.com")  填充的有问题,正确的是如下用法:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com")));

2、Activity 生命周期

本章的知识,直接参考Android的帮助文档吧,file:///D:/android-sdk/docs/reference/android/app/Activity.html (注意这是我的本地目录,仅参考)

3、在 Activity 之间传递参数

3.1、传递简单数据

5、在 Android 中 Intent 的概念及应用

5.1、显式 Intent

5.2、隐式 Intent

action常量的定义一般采用: 包名.intent.action.具体字符串   这个字符串是可以任意写的。

例如: org.crazyit.intent.action.CRAZYIT_ACTION     // 没错这里来自疯狂Android讲义。

通过隐式 intent,还有一个好好处就是,可以用来启动另一个应用的activity。这是通过显示intent无法实现的。这就好比通过淘宝启动支付宝??

如果要避免自己的应用中的activity被其它应用启动,可以在 AndroidManifest.xml中配置:

<activity android:name=”.MyAty”  android:exported=”false”>  /默认是true.就是说是可以被访问的。

如果无法启动另一个应用,实际上是会抛出一个异常,会导致应用crash。

我们可以捕获这个异常。

     startActivity.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View source){//Intent intent = new Intent(Lifecycle.this//        , SecondActivity.class);//startActivity(intent);try{startActivity(new Intent("com.jikexueyuan.intent.action.myAty"));}catch(Exception e){Toast.makeText(Lifecycle.this, "无法启动指定的Activity", Toast.LENGTH_SHORT).show();}}});

5.3、Intent 过滤器相关选项

如果intent - filter 配置相同的的action 和 category.则多个activity都会启动。

这个就像是说打开word, 提示你是通过 WPS, 还是内置文本阅读器打开。会提示多个匹配项。

5.4、通过浏览器链接启动本地 Activity

1,在本地activity中配置如下信息,Manifest中的activity添加如下filter。当然注释要删掉,不合法注释。

            <intent-filter><category android:name="android.intent.category.BROWSABLE"/> //表示可以被浏览器启动<category android:name="android.intent.category.DEFAULT"/> //启动的是一个activity,所以肯定需要给他一个default<action android:name="android.intent.action.VIEW" /><data android:scheme="app" /> //表示一个协议,协议名字是app ?</intent-filter>

2,建立一个HTML页面,添加一个超级链接。让他通过app 协议打开某一个activity。

<body><a href="app://hello">Launch My App</a>
</body>

3,在模拟器里,使用Android浏览器可以通过 10.0.2.2:port 访问本地页面。

6、Android 中 Context 的理解及使用

1、Context 的作用

先从Android 文档上扒下来。file:///D:/android-sdk/docs/reference/android/content/Context.html

Class Overview


Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.

看的说明就知道了,Context类是用来访问应用程序的资源。访问全局信息的。图片资源,字符串资源,

最常用的使用

abstract Resources

getResources()

Return a Resources instance for your application's package.

Resource类的方法如下:

CharSequence

getText(int id)

Return the string value associated with a particular resource ID. The returned object will be a String if this is a plain string; it will be some other type of CharSequence if it is styled.

getResources().getText(R.string.helloworld);

tv = new TextView(this);setText(R.string.hello_world) //具体是如何访问资源的。按F3 查看函数实现。setText(int resid){setText(getContext().getResources().getText(resid));  //先获取context, 再获取Resources ,再通过资源ID获取字符串。//而activity, service 都继承自context类。因为要访问资源。} 

2、Application 的用途

很多情况下,我们需要多个组件之间数据的共享。我们前面已经知道Context可以实现

1, 创建一个类,让它继承 application.

import android.app.Application;

public class app extends Application{

private String name = "";

public boolean setText(String arg){

this.name = arg;

return true;

}

public String getText(){

return name;

}

}

2, 打开AndroidManifest.xml 进行一个配置

在<application 标签中,添加一个定义

<application

android:name=".App"

android:icon="@drawable/ic_launcher"

通过这样我们就自定义了一个Application。而Application才是一个真正的全局上下文对象。

通过getApplicationContext 获取application,然后再修改。

((app)getApplicationContext()).setText("我修改了全局的内容");

2 Application的生命周期

Application的onCreate 函数是早于 activity 的onCreate的。而且,不论是从哪个activity启动应用,application的onCreate都会执行。

看Android文档。

void

onCreate()

Called when the application is starting, before any other application objects have been created.

void

onLowMemory()

This is called when the overall system is running low on memory, and would like actively running process to try to tighten their belt.

void

onTerminate()

This method is for use in emulated process environments.

极客学院-Android基础知识相关推荐

  1. 小黑小波比.极客学院.android自学笔记

    1_第1阶段|环境搭建 2_第2阶段|Java基础 1_Java语言基础-计算机进制转换 1_计算机系统进制概述 概述: 1.数值是用一组固定的符号和同意的规则来表示数值的方法. 2.计算机底层使用的 ...

  2. 极客学院 Android 系统体系教程

    Android是一种基于Linux Core 的非常Free及开OpenSouring代码的Operation System.,主要使用于Mobile Device,如智能手机和平板电脑,由谷歌和Op ...

  3. 极客学院 Docker全面解读零基础实战(云盘下载)

    课程名称:  极客学院 Docker全面解读零基础实战 视频教程 课程简介:    非常系统的一套Docker视频教程,很全面的解读了Docker系统学习过程中各个重要知识点 可以作为一套入门级的Do ...

  4. 2019最新最全极客学院 Docker全面解读零基础实战

    课程名称:  极客学院 Docker全面解读零基础实战 视频教程 课程简介:     非常系统的一套Docker视频教程,很全面的解读了Docker系统学习过程中各个重要知识点 可以作为一套入门级的D ...

  5. 极客学院 Docker全面解读零基础实战(45章节)

    课程名称:  极客学院 Docker全面解读零基础实战 视频教程 课程简介:     非常系统的一套Docker视频教程,很全面的解读了Docker系统学习过程中各个重要知识点 可以作为一套入门级的D ...

  6. 极客学院Docker45集视频教程 Docker全面解读零基础实战全套

    课程名称:  极客学院 Docker全面解读零基础实战 视频教程 课程简介:     非常系统的一套Docker视频教程,很全面的解读了Docker系统学习过程中各个重要知识点 可以作为一套入门级的D ...

  7. 极客学院-Html5个人笔记总结

    第一部分,HTML5基础 1,什么是HTML5?  (Hyper Text Markup Language) 超文本标记语言,用于描述网页的一种语言.  2,HTML5相关知识?  HTML  XHT ...

  8. Python简单网页爬虫——极客学院视频自动下载

    一.需求背景 最近正好在研究Python,看了菜鸟教程上的基本教程,然后又再看极客学院的教学视频,向实战进军. 极客学院的视频是需要年费会员才能下载的,客户端倒是可以批量下载,但是下载之后,没有目录结 ...

  9. 【极客学院每日1课 】Java入门与常用技巧

    2019独角兽企业重金招聘Python工程师标准>>> Java是Android开发者必学的基础编程语言.你的基础怎么样? 遥想当年,小乔还未出嫁,小编在大学里面,啃书本,听教授在课 ...

最新文章

  1. 显示来自多个表的数据——JOIN
  2. 全面理解目标检测中的anchor
  3. keras 与tensorflow绑定在一起用的,何以见得
  4. Dom方法,解析XML文件
  5. 开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门
  6. ecshop几个价格
  7. 李郁韬:短期爆发还是未来趋势?腾讯云海量音视频通信服务背后的技术发展
  8. CentOS7下PHPNginxMysql编译安装及sytemd配置
  9. 一站式Web开发套件BeetleX.WebFamily
  10. PJSIP学习笔记——从simple_pjsua.c示例程序了解PJSUA-LIB的基本使用流程
  11. Spring Security:初体验
  12. 深层神经网络——多层网络解决异或运算
  13. brew切换到清华源
  14. USB 3.0 高清音视频采集芯片——MS2130
  15. docker端口映射但外网无法访问解决方案
  16. Windows Server - NIC Teaming
  17. Python: 傅里叶级数
  18. python 矢量场的构造、计算;通过 matplotlib 作图、分析、筛选符合要求的像素点
  19. markdown插入图片的几个办法
  20. 2023电工杯数学建模竞赛B题思路解析+代码+论文

热门文章

  1. 阿里云蔡英华:对合作伙伴要抱有敬畏之心
  2. jQuery AJAX获取JSON数据解析多种方式示例
  3. 数据结构学习——表、查找
  4. Java实训(181110~181111)
  5. 详解二叉树的遍历实现,有图有代码
  6. 微信开发系列(六)_js调用微信扫码
  7. cs231n_two_layer_net
  8. 物联网LoRa系列-8:LoRa终端应用程序开发环境的搭建
  9. 开发提测,提测的内容?
  10. 关于数据库设计的做题笔记——选择题+填空题+大题