初识Application

    技术2022-07-11  106

    Application

    一.Application是什么二.Application的应用1.共享数据、传递数据、存数据 三.Application生命周期四.BaseActivity五.BaseApplication六.什么是上下文七.上下文不同使用场景

    一.Application是什么

    一个全局单例模式的类,用于维护应用的状态。

    当运行项目时优先于其他类运行。可以写一个自己的Application类,需要在清单文件Application标签中注册,添加name属性。可以通过Context.getApplicationContext()方法获得全局上下文对象。整个过程中生命周期最长

    二.Application的应用

    1.共享数据、传递数据、存数据

    Application

    public class MyApplication extends Application { public String name; } 注意:清单文件中要加name属性

    ActivityA

    public void openActivity(View view) { MyApplication application = (MyApplication) getApplication(); application.name = "ricky"; startActivity(new Intent(this,Main2Activity.class)); }

    ActivityB

    @Override MyApplication myApplication; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //方式一 myApplication = (MyApplication)getApplication(); Log.d("amy",myApplication.name); //方式二 myApplication = (MyApplication) getApplicationContext(); Log.d("amy",myApplication.name); }

    三.Application生命周期

    public class App extends Application { private static final String TAG = "amy"; @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); } }

    四.BaseActivity

    public abstract class BaseActivity extends AppCompatActivity{ protected abstract int layoutId(); protected abstract void initView(); protected abstract void initData(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(layoutId()); initView(); initData(); } }

    五.BaseApplication

    public class MyApplication extends Application { private static MyApplication application; private static Context context; @Override public void onCreate() { super.onCreate(); application = this; context = getApplicationContext(); } }

    六.什么是上下文

    七.上下文不同使用场景

    Processed: 0.014, SQL: 9