ほとんどの場合、デスクトップアプリケーションを設計するときは、便利な目的でメインアプリケーションをシングルトンにするのが大好きです。メインのアプリケーション参照をあちこちに渡すことなく、アプリケーションのデータとメソッドに簡単にアクセスできます。
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;
}
}