Android - Activity

生命周期
Android - Activity
manifest.xml中
  1. <activity
  2.  
  3.           android:name="string"
  4.           android:icon="drawable resource"
  5.           android:label="string resource"    //标签
  6.           android:theme="resource or theme"    //主题
  7.           android:exported=["true"|"false"]    //是否允许被其他应用调用
  8.           android:launchMode=["multiple"|"singleTop"|
  9.                               "singleTask"|"singleInstance"]
  10.           android:screenOrientation=["unspecified"|"user"|"behind"|
  11.                                      "landscape"|"portrait"|
  12.                                      "sensor"|"nosensor"]
  13.           <intent-filter>
                   <action/>
                   <category/>
              </intent-filter>
  14. </activity>
  15.  
 
启动与结束Activity
startActivity(Intent)  startActivityForResult(Intent,int RequestCode)
finish()  finishActivity(int RequestCode)
 
  1. //MainActivity
  2. intent.setClass(MainActivity.this,SecondActivity.class);
  3. startActivityForResult(intent,0);
  4.     @Override
  5. publicvoid onActivityResult(int requestCode,int resultCode,Intent intent)
  6. {
  7. if(requestCode ==0&& resultCode ==0)
  8. {
  9. Bundle data = intent.getExtras();
  10. }
  11. }
  1. //SecondActivity
  2. getIntent().putExtra("city","beijing");
  3. SecondActivity.this.setResult(0, intent);。
  4. SecondActivity.this.finish();
 
四种加载模式
  • standard: 标准模式,一调用startActivity()方法就会产生一个新的实例。
  • singleTop: 如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,而只是调用Activity中的newInstance()方法。如果不位于栈顶,会产生一个新的实例。
  • singleInstance: 同一task栈只能有一个此activity实例,要启动该Activity时,(若该Activity不在栈顶)会把该Activity上面所有的Activity移出task栈
  • singleTask: 会在一个新的task栈中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。