4
대부분의 경우 데스크톱 응용 프로그램을 디자인 할 때 주 응용 프로그램을 편리한 목적으로 싱글 톤으로 만드는 것을 좋아합니다. 메인 애플리케이션 레퍼런스 전체를 전달하지 않고도 애플리케이션의 데이터와 메소드에 쉽게 액세스 할 수 있습니다.Activity를 싱글 톤으로 취급하는 것이 안전합니까?
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;
}
}
그러나보기의 안드로이드 플랫폼의 관점에서, 나는 더 이상 확인 내가 MainActivity
의 창조를 통해 직접 제어 할 수 없기 때문에, 그렇게/올바른 안전 여부를 생각하지 않습니다.
- 실행 모드가
standard
될 것입니다 내가해야 할 것 오전MainActivity
입니다. 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 –