利用Intent消息传递和其背后的事情

2020-11-08  本文已影响0人  小水neo

利用Intent消息传递和其背后的事情

Intent的使用

显示调用

显示Intent直接指明要启动activity的定义,即activity.class

           Intent intent = new Intent(MainActivity.this, ProfileActivity.class);
                        intent.putExtra("login",loginInfo.getLogin());
                        startActivity(intent);

隐式调用

Intent filter

常用<action> <data> <category>子元素(intent属性 )



其中<action>可添加多个(VIEW EDIT PICK),但不能为空,否组会因匹配失败而阻塞。

使用

  1. 默认catgory
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);

//xml中注册
<intent-filter>
                <action android:name="com.example.activitytest.ACTION_START" />

                <category android:name="android.intent.category.DEFAULT" />
               
                
</intent-filter>
  1. 自建catgory
Intent intent = new Intent("com.example.activitytest.ACTION_START");
                intent.addCategory("com.example.activitytest.MY_CATEGORY");
                startActivity(intent);
//xml中加一句
<category android:name="com.example.activitytest.MY_CATEGORY" />
//注意,category可以有多个,所以既是默认又是自建

Intent用于Activity跳转

  1. 不带参数的调转
  2. 带参数的跳转:bundle封装键值对
  3. 带返回值的跳转

阻塞和任务调度

Activity的阻塞

类似于进程阻塞的概念。cpu利用率为 1 - idle/单位时间,若单核cpu,进程阻塞cpu利用率会到100%。

常见任务调度:

FCFS(理论)、 CFS(linux)红黑树、 BFS(Android)bitmap+queue

上一篇 下一篇

猜你喜欢

热点阅读