zoukankan      html  css  js  c++  java
  • Android四大组件

    activity:
         activity创建
              继承Android的activity类——重写方法——设置显示布局——在Androidmanifest文件中注册activity。
    public class MainActivity extends Activity{
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                   super.onCreate(savedInstanceState);
           }
    }
     
     
    AndroidManifest.xml
     
    <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />     //设置为应用程序的主入口
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
     
    activity的生命周期
         activity从创建到销毁
             1:onCreate();     //创建
         2:onStart();     //运行
         3:onResume();     //获取焦点
         4:onPause();     //失去焦点
         5:onStop();     //暂停
         6:onDestroy();     //销毁
     
         activity从创建到返回主界面,然后再运行
             1:onCreate();     //创建
         2:onStart();     //运行
         3:onResume();     //获取焦点
         4:onPause();     //失去焦点
         5:onStop();     //暂停
         6:onRestart();  
         7:onStart();     //运行
         8:onResume();     //获取焦点
     
     
    activity 的四种状态:活动状态,暂停状态,停止状态,非活动状态。
         活动状态(active/running):activity处于界面最顶端,获取焦点。
         停止状态(paused):activity失去焦点,但对用户可见。
         停止状态(stopped):activity被完全遮挡或者部分遮挡,但保留成员的所有状态额成员信息。
         非活动状态(killed):activity被停止。
     
     
     
     
    service:
              优先级高于activity
         类型:本地服务(local service) 
                        一般用于应用程序内部
                             startService stopService stopSelf stopSelfResult
                             bindService     unbindService
                   远程服务(remote service)
                          Android系统内部应用程序之间
                               定义IBinder接口
         Start方式特点:
              服务跟启动源没有任何联系。
              无法得到服务对象。
          Bind方式特点:
              通过Ibinder接口实例,返回一个ServiceConnection对象给启动源
              通过ServiceConnection对象的相关方法得到Service方法。
     
    注册服务:
    <service android:name="com.example.service.StartService" ></service>
    <service android:name="com.example.service.BindService" ></service>
      
     
    StartService:
                  Intent intent=new Intent(MainActivity. this,StartService.class);
                  startService(intent);       //startservice
                  stopService(intent);  //stopservice
     
    StartService.class
            /**
            * 只会调用一次
            */
            @Override
            public void onCreate() {
                   super.onCreate();
           }
           
            /**
            * 每次启动都会调用
            */
            @Override
            public int onStartCommand(Intent intent, int flags, int startId) {
                   return super .onStartCommand(intent, flags, startId);
           }
           
            /**
            * 停止服务
            */
            @Override
            public void onDestroy() {
                   super.onDestroy();
           }
     
     
    BindService:
         Intent intent=new Intent(MainActivity. this,BindService.class);
                   //Service.BIND_AUTO_CREATE  服务自动创建
                  bindService(intent, null,Service.BIND_AUTO_CREATE );
                  unbindService( null);
           }
     
     
    broadcastReceiver:
         是对发送出来的广播进行过滤接收并响应的一类组件,它就是用来接收来自系统和应用中的广播。
              使用方法:
                   发送:
                             把信息装入一个intent对象
                             通过调用相应的方法将Intent对象以广播方式发送出去。
                                
                   接收:
                              当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFiter是否与发送的Intent想匹配,若匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceive()方法。                   
     
     
    注意:BroadcastReceiver需要注册
              静态注册
         <receiver android:name="com.example.contentprovider.bc1">
               <intent-filter android:priority= "100" >  //优先级
                   <action android:name="bcone" />
               </intent-filter> 
            </receiver>
     
              动态注册
                   //动态注册(程序运行才有用)
                  IntentFilter intentFilter= new IntentFilter();
                  bc1 bc1= new bc1();
                  registerReceiver(bc1, intentFilter);
     
     
            /**
            * 动态注册之后 要销毁
            */
            @Override
            protected void onDestroy() {
                   // TODO Auto-generated method stub
                   super.onDestroy();
                  unregisterReceiver( receivername);
           }
         BroadcastReceiver的声明周期只有十秒左右,在BroadcastReceiver里不能做一些比较耗时的操作。
         
    广播种类:
         普通广播(Normal broadcasts)
              所有监听该广播的广播接受者都可以监听到该广播
                   同级别接收没有先后顺序(随机)
                   级别低的后收到广播
                   接收器不能截断广播的继续传播也不能处理广播
                   同级别动态注册高于静态注册
     
    发送:
                          sendBroadcast();
                 Intent intent=new Intent();
                 intent.putExtra( "bc", "abc" );
                 intent.setAction( "com.example.contentprovider.MainActivity" );
                 sendBroadcast(intent);
                           sendOrderBroadcast();
                           sendStickyBroadcast();
    接收:
         public class bc1 extends BroadcastReceiver{
           @Override
            public void onReceive(Context arg0, Intent arg1) {
                  arg1. getStringExtra("bc");        
                  abortBroadcast();     //截断广播(普通广播不能截断)
           }
         }
         
     
     
     
         有序广播(Ordered broadcasts)
              按照接受者的优先级顺序接收广播,优先级别在intent-filter中的priority中声明,-1000到1000之间,值越大,优先级越高。可以终止广播意图的继续传播。接受者可以更改内容。
                   同级别接收没有先后顺序(随机)
                   能截断广播的继续传播,高级别的广播接收器收到该广播后,可以决定把该广播是否截断。
                   接收器能截断广播的继续传播,也能处理广播。
                   同级别动态注册高于静态注册
     
    发送:
                  Bundle bundle=new Bundle();
                  bundle.putString( "text", "bc" );
                  setResultExtras(bundle);
    接收:
                   Bundle bundle=getResultExtras(true);
     
         异步广播(粘滞性滞留广播)
              不能将处理结果传给下一个接受者,无法终止广播。
                   //异步广播  先发送后注册
                  Intent intent= new Intent();
                  intent.putExtra( "key", "value" );
                  intent.setAction( "actionname");
                  sendStickyBroadcast(intent);
                  IntentFilter intentFilter= new IntentFilter("actionname" );
                  bc1 bc1= new bc1();
                  registerReceiver(bc1, intentFilter);
     
     
    contentProvider:
    stareblankly.cn
  • 相关阅读:
    运算符、流程控制
    python数据类型
    Python入门基础
    pandas教程1:pandas数据结构入门
    使用matplotlib绘制多轴图
    使用matplotlib快速绘图
    浙江省新高中信息技术教材,将围绕Python进行并增加编程相关知识点
    [转]ubuntu搭建LAMP环境
    [转]字体精简
    [转]安装PIL时注册表中找不到python2.7
  • 原文地址:https://www.cnblogs.com/stareblankly/p/4844208.html
Copyright © 2011-2022 走看看