Che*_*eng 4 android design-patterns
大多数时候,在设计桌面应用程序时,我喜欢将主应用程序设为单例以方便使用.我可以轻松访问应用程序的数据和方法,而无需遍布主应用程序引用.
public class MainFrame extends javax.swing.JFrame {
// Private constructor is sufficient to suppress unauthorized calls to the constructor
private MainFrame()
{
}
/**
* MainFrameHolder is loaded on the first execution of Singleton.getInstance()
* or the first access to MainFrameHolder.INSTANCE, not before.
*/
private static class MainFrameHolder {
private final static MainFrame INSTANCE = new MainFrame();
}
/**
* Returns MainFrame as singleton.
*
* @return MainFrame as singleton
*/
public static MainFrame getInstance() {
return MainFrameHolder.INSTANCE;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,从Android平台的角度来看,我不再确定这样做是否正确/安全,因为我没有直接控制创建MainActivity
.在MainActivity
我将不得不为
standard
.MainActivity
创建实例时,用户点击应用程序图标.意味着,唯一的启动方式是在AndroidManifest.xml的<application>
标签中指定.不应该有任何其他的Java代码的范围内MainActivity.apk
,推出MainActivity
本身.public class MainActivity extends Activity {
public static MainActivity INSTANCE = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
assert(INSTANCE == null);
INSTANCE = this;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
143 次 |
最近记录: |