android application

本文介绍如何利用Android中的Application类实现多个Activity之间的数据共享,并详细解析Application的生命周期及其回调方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
 
1、 Application的使用
2、Application的生命周期
1. Application的使用

多个组件之间数据共享

举例:两个Activity之间数据共享

Application 对同一个应用程序是唯一的,所以可以使用Application进行数据共享

定义两个Activity:  MainActivity.java 和 MainActivity2.java, 代码是一样的
TextView tv; EditText et; @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     //setContentView(R.layout.activity_main_activity2);    setContentView(R.layout.activity_main2);     tv = (TextView) findViewById(R.id.tv);     et = (EditText) findViewById(R.id.et);         tv.setText("共享数据:" + getApp().getTextData());         findViewById(R.id.btnTextData).setOnClickListener(new OnClickListener() {         @Override         public void onClick(View v) {             getApp().setTextData(et.getText().toString());             tv.setText("共享数据:" + et.getText().toString());         }     }); } public App getApp() {     return ((App)getApplicationContext()); }

 

定义一个类App,集成Application
public class App extends Application {         private String textData = "default";         public void setTextData(String textData) {         this.textData = textData;     }     public String getTextData() {         return textData;     } }

 

修改AndroidManifest.xml文件, 使用自定义的Application,两个Activity都是入口:
<application     android:name="com.carloz.learnapplication.App"     android:allowBackup="true"     android:icon="@drawable/ic_launcher"     android:label="@string/app_name"     android:theme="@style/AppTheme" >     <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         android:name="com.carloz.learnapplication.MainActivity2"         android:label="@string/title_activity_main_activity2" >         <intent-filter>             <action android:name="android.intent.action.MAIN" />             <category android:name="android.intent.category.LAUNCHER" />         </intent-filter>     </activity> </application>

 

结果,在一个Activity修改App的数据,在另一个Activity都能获取到
2. Application的生命周期

给应用程序配置,自定义的Application,然后在Application的生命周期中做一些操作

Application生命周期
public class App extends Application {     @Override     public void onCreate() {         // 程序创建的时候执行         Log.d(TAG, "onCreate");         super.onCreate();     }     @Override     public void onTerminate() {         // 程序终止的时候执行         Log.d(TAG, "onTerminate");         super.onTerminate();     }     @Override     public void onLowMemory() {         // 低内存的时候执行         Log.d(TAG, "onLowMemory");         super.onLowMemory();     }     @Override     public void onTrimMemory(int level) {         // 程序在内存清理的时候执行         Log.d(TAG, "onTrimMemory");         super.onTrimMemory(level);     }     @Override     public void onConfigurationChanged(Configuration newConfig) {         Log.d(TAG, "onConfigurationChanged");         super.onConfigurationChanged(newConfig);     }     }

 

 
打开Activity 08-16 15:16:27.142: D/CARLOZ - Application(28202): onCreate 08-16 15:16:27.172: D/CARLOZ - MainActivity3(28202): onCreate 08-16 15:16:27.232: D/CARLOZ - MainActivity3(28202): onStart 08-16 15:16:27.232: D/CARLOZ - MainActivity3(28202): onResume HOME键退出应用程序 08-16 15:16:55.372: D/CARLOZ - MainActivity3(28202): onPause 08-16 15:16:55.942: D/CARLOZ - MainActivity3(28202): onStop 08-16 15:16:55.952: D/CARLOZ - Application(28202): onTrimMemory    回收内存 重新打开应用程序 08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onRestart 08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onStart 08-16 15:17:20.962: D/CARLOZ - MainActivity3(28202): onResume 长按MENU键,打开Recent TASK 08-16 15:17:28.972: D/CARLOZ - MainActivity3(28202): onPause 08-16 15:17:28.992: D/CARLOZ - MainActivity3(28202): onStop 08-16 15:17:29.022: D/CARLOZ - Application(28202): onTrimMemory 彻底关闭应用程序 08-16 15:17:31.542: D/CARLOZ - MainActivity3(28202): onDestroy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值