android 意图和四大组件

意图 Intent
                        
                
    一、显式意图
        直接指定要实现的类:
            Intent intent=new Intent(MainActivity.this,xxx.class);
            this.startActivity(intent);
        
    二、隐式意图
        1:xml配置:在意图所指向的类的配置中添加属性<intent-filter></intent-filter>,如:
            <activity
            android:name="com.example.activity.twoActivity"
            android:label="two"
                <intent-filter>
                    <action android:name="com.xxx.xxxx"/>
                    <data android:mimetype="text/String"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            android:launchMode="singleInstance"/>
        
        2:在窗体activity中使用:
            Intent intent =new Intent();
            intent.setAction("com.xxxx.xxxx");
            intent.setType("text/String");
            intent.addCategory(Intent.CATEGORY.DEFAULT);
            this.startActivity(intent)
    
        注意:在隐式意图中可以同时对应多个动作/类,在启动时会自动给用户选择。
    
    
                        四大组件:Activity、Contentprovider、broadcastreceive、service            
                                        
                    
    一、Activity  窗体
        
        1、生命周期
            1.onCreate() 窗体创建时被调用
            2.onStart()    窗体界面可见时被调用
            3.onResume()    用户得到焦点时被调用
            4.onPause()    失去焦点时被调用
            5.onStop()    窗体界面不可见时被调用
            6.onDestory()    窗体销毁时被调用
            7.onRestart   重新开始窗体
            打开窗体:1-2-3
            最小化: 4-5
            恢复窗体大小:7-2-3
            关闭窗体:4-5-6
            
        2、横竖屏幕切换
            <activity android:configChanges="orentagion|keyboardHidden|screenSize"  --窗口变化不重置
                      android:screenOrentation="landscape"    ---设置窗口方向、默认自动感应。landscape:横向。
        
        3、activity的启动模式
            <activity launchMode=""
            standard:默认模式
            singleTop:如果activity在顶部,系统就不会重新创建.而是调用现在activity的onNewIntent方法.
            singleTask:保持任务栈只有一个activity,如果要启动的activity已经存在,会复用已存在的activity,把activity之上的窗口全部清掉
            singInstance:整个系统只有一个activity存在.它会运行在自已独立任务栈中,并且任务栈只有它一个实例存在
                    
    二、Contentprovider     内容提供者
        
    三、BroadcastReceiver  广播接收者
    
        1、有序广播        ————所有人都可以接受到,不可以修改不可以拦截。
            1.发广播
                public void sendBroadcast(View view){
                    Intent intent =new Intent();
                    intent.setAction("com.xxx.xxxx");
                    this.sendBroadcast(intent);
                }
            
            2.接收广播
                配置文件:
                    <activity>
                    </activity>
                    <receiver android:name="com.xxxx.xxxxx">  --广播名称
                        <intent-filter>
                        <action android:name="xxxxxx"/>  --检测对象名称
                        </intent-filter>
                    </receiver>
                
                广播.java文件:
                    继承 Broadcastreceiver
                
                可以获取对方数据和修改(不是指广播内容)
                    例如:打电话
                    this.getResultData();  获取对方拨出的电话
                    this.setResultData("xxx"); 修改对方拨出的电话
            
        2、无序广播        ——————一级一级的往下传,可以修改可以拦截广播内容。
            1.发有序广播
                Intent intent =new Intent();
                intent.setAction("com.xxx.xxxx");
                this.sendOrderedBroadcast(intent,recriverPermission,resultReceiver,scheduler,initialCode,initialData,initialExtras);
                    如:this.sendOrderedBroadcast(intent,null,null,null,"400","广播内容",null);
                
            2.接收有序广播
                配置文件:
                        <activity>
                        </activity>
                        <receiver android:name="com.xxxx.xxxxx3">  --广播名称
                            <intent-filter android:priority="2000">        ----代表级别,数字大的先接收
                            <action android:name="xxxxxx"/>  --检测对象名称
                            </intent-filter>
                        </receiver>
                        <receiver android:name="com.xxxx.xxxxx2">  --广播名称
                            <intent-filter android:priority="3000">
                            <action android:name="xxxxxx"/>  --检测对象名称
                            </intent-filter>
                        </receiver>
                        
                广播.java文件:
                    继承 Broadcastreceiver    
                    this.getResultData();  获取广播内容
                    this.setResultData("xxx"); 修改广播内容
                    this.abortBroadcast();拦截停止广播
                
                
    四、service  服务     
                    ------一种运行在后台的组件(类)
    
        1、关于进程和进程的优先级别
            进程  ————一个应用程序。
            优先级:由高到低
                1.Foreground process 前台进程  用户正在使用的进程
                2.visible process 可见进程 可以看见的进程  (例如悬浮窗)
                3.service process 服务进程 有后台服务的进程
                4.background process 后台进程 最小化但没有关闭的进程
                5.Empty process 没有任何运行的Activity (返回键一直返回到桌面)
                
        2、服务的生命周期
            onCreate() 创建的时候调用
            onStartCommand() 被启用时调用
            onDestory() 销毁时被调用
            
        3、使用
            1.创建
            新建java  继承 service
            配置文件:
            <service android:name="com.xxx.xxx"></service>
            2.使用
            启用:(如果服务不存在,创建一个服务,再开启)
                Intent intent=new Intent(MainActivity.this,xxxx.cladss);
                this.startService(intent);
            关闭:
                Intent intent=new Intent(MainActivity.this,xxxx.class);
                this.stopService(intent);

时间: 2024-10-22 19:00:58

android 意图和四大组件的相关文章

Android笔记(六十)Android总结:四大组件——BroadcastReceiver篇

什么是BroadcastReceiver BroadcastReceiver是Android体系的四大组件之一,本质上是一种全局的监听器,用于监听系统全局的广播消息,正式因为其本质为全局监听,因此可以非常方便的实现系统中不同组件之间的通信.也方便我们自己的app针对系统开机.电量低等广播做出相应反映.同时我们也可以自己发送广播,来实现不同组件之间的通信 系统接收短信广播,然后弹出Toast: package cn.lixyz.broadcastreceiver; import android.a

关于Android中的四大组件(AIDL Service的使用)

跨进程调用Service(AIDL Service) Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信. 在前一篇文章(关于Android中的四大组件(Service的开启与关闭))中介绍了开发人员如何定制自己的服务,但这些 服务并不能被其它的应用程序访问,为了使其它的应用程序也可以访问本应用程序提供的服务,Android系统采用了 远程过程调用(Remote Procedure Call,RPC)方式来实现.与很多其它的基于RPC的解决方案一样,An

王立平--android中的四大组件

Android中称为四大组件的为别为:Activity/Service/BroadCast Recevicer/Content  provider Activity:activity是用户和应用程序交互的窗口,一个activity相当于我们实际中的一个网页,当打开一个屏幕时,之前的那一个屏幕会被置为暂停状态,并且压入历史堆栈中,用户可以通过回退操作返回到以前打开过的屏幕. activity的生命周期:即"产生.运行.销毁",但是这其中会调用许多方法onCreate(创建) .onSta

Android基础之四大组件---Activity

Android基础之四大组件-Activity 1.什么是Activity 2.Activity生命周期 3.Activity生命周期演示 4.Activity之间的通信 5.Activity之加载模式 6.Activity的栈式管理 1.什么是Activity? Activity是用户接口程序,它是Android应用程序的基本功能单元,它的主要功能是提供界面.Activity是Android的核心类,该类的全名是android.app.Activity.Activity相当于C/S程序中的窗体

Android Service即四大组件总结

原文转载自:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html Service 服务: 一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序. 比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器.在一个媒体播放器的应用中,应该会有多个 activity,让使用者可以选择歌曲并播放歌曲.然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕

Android安全机制--四大组件安全

组件有Public和Private的概念,是否能被其他方调用.通过android:exported字段来确定,android:exported="true"表示能,反之不行. 默认情况下,组件在AndroidMainfest声明中没有 interfliter  那么exported为false,有了interfliter为true.当然我们可以直接输入android:exported来自己控制.以下就设置为false [html] view plaincopyprint? <ac

Android笔记(五十八)Android总结:四大组件——Activity篇

什么是Activity Activity是一种包含用户界面的组件,主要用于和用户进行交互,一个APP通常由多个Activity组成. 每个Activity都对应一个布局文件,通过setContentView()方法来载入布局文件.并且通过用户对布局文件中的组件所发出的事件来做出相应的反映. Activity的四种状态 1)激活状态,此时activity运行在屏幕前台 2)暂停状态,此时activity失去焦点,但是用户仍然可以看到(例如这个activity上遮盖了一个透明的或者非全屏的activ

关于Android中的四大组件(Activity)

一.Activity简述 Activity是Android应用中负责与用户交互的组件.在应用中创建自己的Activity需要继承Activity或者继承Activity的 子类. public class TestActivity extends Activity { } 二.Activity的使用 从图1.1可以看出Activity间接继承了ContextThemeWrapper.ContextWrapper.Context.Object这些基类,因此 Activity可以直接调用它们的方法.

android 概述 及四大组件

android studio中,gen很bin文件夹合并为built文件夹