您的位置:首页 > 汽车 > 新车 > 平面设计案例网站_中国建筑装饰网型号填什么_企业网络营销顾问_网络优化工程师

平面设计案例网站_中国建筑装饰网型号填什么_企业网络营销顾问_网络优化工程师

2025/1/8 7:55:03 来源:https://blog.csdn.net/soarfeng/article/details/144803363  浏览:    关键词:平面设计案例网站_中国建筑装饰网型号填什么_企业网络营销顾问_网络优化工程师
平面设计案例网站_中国建筑装饰网型号填什么_企业网络营销顾问_网络优化工程师

1、四大组件之相互启动关系

  • 在Android框架里已经定义了这些组件间之互动关系。互动关系又分为二:

        1. 启动(Activation)关系。
        2. 数据传输或交换(Data Exchange)关系。

  • 于此,从启动关系来初步认识它们。由于CP(Content Provider)组件大多基于被动角色、属于被启动的一方,其角色单纯不复杂。因之,先针对Activity  Receiver Service间之三角关系,做个仔细的说明。
     
AA模式
  • 这是由Android先启动一个Activity的子类(如ac01)之对象,然后ac01对象视需要而要求Android启动另一个Activity的子类(如myActivity)的对象。
public class ac01 extends Activity {// ……startActivity(new Intent(this, myActivity.class));// ……
}

  • ac01就要求Android(里的ActivityManager)去启动myActivity子类别之对象了。
  • 当myActivity被启动时,立即执行myActivity的onCreate()函数。
     

Activity Manager如何选择ac01与myActivity呢?
 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.misoo.kx01">
<application android:icon="@drawable/icon">
<activity android:name=".ac01" 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 android:name=".myActivity" android:label="myActivity">
</activity>
</application>
</manifest>

留意:AndroidManifest.xml文檔的用途: 给予各子类的配对条件

RA模式

在此模式里,是由R(BroadcastReceiver)启动A(Activity)。但是谁来启动R呢? 在本范例里,将由开机的事件来启动R。

在AndroidManifest.xml裡宣告如下:
 

<application android:icon="@drawable/icon">
// ……
<receiver android:name=".BeginReceiver">
<intent-filter>
<action android:name=
"android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
  • 重开模拟器或手机,开机了,此时会发送开机事件给myReceiver。 Android就诞生一个BeginReceiver对象,并执行onReceiver()函数 :
public void onReceive(Context context, Intent intent){Intent i = new Intent(context, myActivity.class);i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);
}
  • 这就发出一个Intent对象给Android,请求启动myActivity 。
     
RS模式

在此模式里,是由R(BroadcastReceiver)启动S(Service)。

在AndroidManifest.xml裡宣告如下:
 

<activity android:name=".myActivity"
android:label="myActivity"> </activity>
<receiver android:name=".BeginReceiver">
<intent-filter>
<action android:name=
"android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service android:name=".myService" />
public class BeginReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent){// ……context.startService(new Intent(context, myService.class));}
}public class myService extends Service
{private NotificationManager mNMgr;@Override public void onCreate(){mNMgr =(NotificationManager)getSystemService(NOTIFICATION_SERVICE);showNotification(….);}@Override public void onStart() { //…... }
}
RSA模式

在此模式里,是由R(BroadcastReceiver)启动S(Service) ,然后S再启动A。

AR模式(由A啟動R)

除了上述的常见启动模式之外,你还可以活用和变化之,例如 :
• AS模式
• SR模式
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com