And*_*ine 1 android android-intent android-context android-activity
嗨,我有一个名为BaseActivity的活动,它扩展了Activity.从这里我必须去菜单按钮按下扩展的SettingsActivityPreferenceActivity.要启动a AsyncTask,这是一个独立的类,我需要一个实例BaseActivity.我怎样才能获得一个BaseActivity实例SettingsActivity?
有什么办法,例如:
intent.putExtra("activity_instance",BaseActivity.this);
Run Code Online (Sandbox Code Playgroud)
使用getter和setter并将它们所在的类作为singleton类.
这是一个单例类.使用这个类,我们可以在整个类中共享数据(例如:int,boolean,activity instance ...等).
public class CommonModelClass
{
public static CommonModelClass singletonObject;
/** A private Constructor prevents any other class from instantiating. */
private Activity baseActivity;
public CommonModelClass()
{
// Optional Code
}
public static synchronized CommonModelClass getSingletonObject()
{
if (singletonObject == null)
{
singletonObject = new CommonModelClass();
}
return singletonObject;
}
/**
* used to clear CommonModelClass(SingletonClass) Memory
*/
public void clear()
{
singletonObject = null;
}
public Object clone() throws CloneNotSupportedException
{
throw new CloneNotSupportedException();
}
//getters and setters starts from here.it is used to set and get a value
public Activity getbaseActivity()
{
return baseActivity;
}
public void setbaseActivity(Activity baseActivity)
{
this.baseActivity = baseActivity;
}
}
Run Code Online (Sandbox Code Playgroud)
在BaseActivity类中,这样做.
Class BaseActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
CommonModelClass commonModelClass = CommonModelClass.getSingletonObject();
commonModelClass.setbaseActivity(BaseActivity.this);
//after using the BaseActivity instance dont forget to call commonModelClass.clear(); else it wont be garbage collected
}
}
Run Code Online (Sandbox Code Playgroud)
在SettingsActivity中这样做
Class SettingsActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
CommonModelClass commonModelClass = CommonModelClass.getSingletonObject();
Activity instanceBaseActivity= commonModelClass.getbaseActivity();;
}
}
Run Code Online (Sandbox Code Playgroud)
如果有效,请打勾
| 归档时间: |
|
| 查看次数: |
7545 次 |
| 最近记录: |