本文共 2364 字,大约阅读时间需要 7 分钟。
Android Application类是Android框架中一个重要的系统组件,它用于存储系统相关信息。当应用程序启动时,系统会自动创建一个Application对象,并且只创建一个,这意味着Application类遵循单例模式。通常情况下,我们不需要手动指定Application类,系统会自动为我们创建。如果需要自定义Application,可以通过继承Application类并在AndroidManifest.xml中注册即可。
Application对象的生命周期等于应用程序的生命周期,因此它是整个程序中最长的生命周期。由于它是全局单例,所有Activity和Service都能共享同一个对象。这使得Application类非常适合用于全局变量管理、数据传递和缓存等操作。
在Android中,通过继承Application类可以实现应用程序级的全局变量管理。这种方式比使用静态类更有保障,因为只有当所有Activity和Service都被销毁后,Application对象才会释放。
以下是一个简单的Application类示例:
package cn.itcast.app;import android.app.Application;public class MyApp extends Application { public String name; public String age; @Override public void onCreate() { super.onCreate(); setName("张三"); setAge("23"); }}
在AndroidManifest.xml中配置自定义Application:
程序的具体实现代码如下:
package cn.itcast.app;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity { private Button button; private MyApp myApp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { myApp = (MyApp) getApplication(); myApp.setName("jack"); Intent intent = new Intent(MainActivity.this, OtherActivity.class); startActivity(intent); } }); }}package cn.itcast.app;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class OtherActivity extends Activity { private MyApp myApp; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.other); textView = (TextView) findViewById(R.id.msg); myApp = (MyApp) getApplication(); textView.setText("-appname->" + myApp.getName()); }}
通过继承Application类,我们可以在各个Activity中共享全局变量。通过调用Context的getApplicationContext或Activity的getApplication方法,可以获得Application对象,进而访问其成员变量或方法。这种方式在应用程序中非常灵活且有效。
转载地址:http://gzzwz.baihongyu.com/