2017-12-05 2 views
0

変換したいコードは次のとおりです。コードはこれで生成されたAndroidの何スタジオコンパニオンオブジェクトKotlinのシングルトンクラスオブジェクトの参照を保持する方法

public class AndroidLauncher extends AndroidApplication { 

    public static AndroidLauncher androidLauncher; 
    @Override 
    protected void onCreate (Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     androidLauncher = this; 
    } 
} 

class AndroidLauncher : AndroidApplication() { 
    protected override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     androidLauncher = this 
    } 

    companion object { 

     var androidLauncher: AndroidLauncher 
    } 
} 

このコードはエラーです。

プロパティを初期化したり、私がlibgdxでゲームを開発していますので、私はどこでも私が欲しいからゲームのオブジェクトを使用するには、このアプローチを使用します

抽象的でなければなりません。シングルトンクラスなので、メモリが漏れません。

+0

'AndroidLauncher'は「アクティビティ」です – tynn

+2

問題ではありません。しかし、アクティビティの静的変数を保持すると、私が計画していないメモリがリークします。 –

+0

@tynn 'AndroidLauncher'は' Activity'ではなく 'Application'です... – m0skit0

答えて

1

lateinitを使用して、フィールドが後で初期化されることを示します。

companion object { 
     lateinit var androidLauncher: AndroidLauncher 
    } 
関連する問題