4
大多數情況下,在設計桌面應用程序時,我喜歡將主應用程序作爲單例使用,以方便使用。我可以輕鬆訪問應用程序的數據和方法,而無需遍歷整個主應用程序參考。對我來說,將活動視爲單身是否安全
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;
}
}
然而,從Android平臺來看,我不再確定它是否是正確的/安全的這樣做,因爲我有創造的MainActivity
沒有直接的控制。 MainActivity
我將要有
- 啓動模式將是
standard
。 - 唯一一次,當
MainActivity
的實例將被創建時,當用戶點擊應用程序圖標時。意思是唯一的啓動方式是在AndroidManifest.xml的<application>
標籤中指定。在MainActivity.apk
之內不應該有任何其他的Java代碼,自己啓動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;
}
}
感謝您的鏈接。我也從以下鏈接中找到一個相當有用的信息:http://stackoverflow.com/questions/2002288/static-way-to-get-context-on-android –