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();
}
}
六.什么是上下文
七.上下文不同使用场景