Notwendiger Kontext im Modell in MVP

Ich muss den Aktivitätskontext im Modell verwenden, während MVP in Android verwendet wird, um die Liste aller installierten Anwendungen abzurufen. Dies ist der richtige Weg, um auf den Kontext zuzugreifen, oder eine Alternative, um dasselbe zu erreichen, während Sie dem MVP-Muster folgen.

hier sind die Klassen:

public class MainActivity extends BaseActivity
    implements MainView,View.OnClickListener {

private MainPresenter mPresenter;



private Button sendButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    init();
    createPresenter();


}

private void init(){

    sendButton= (Button) findViewById(R.id.button_send);
    sendButton.setOnClickListener(this);
}

private void createPresenter() {
    mPresenter=new MainPresenter();
    mPresenter.addView(this);
}





@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.button_send:
            mPresenter.onSendButtonClick();
            break;
    }
}

@Override
public void openOptionsActivity() {
    Intent intent=new Intent(this,OptionsActivity.class);
    startActivity(intent);
}

}

public class MainPresenter erweitert BasePresenter

MainModel model;
public void onSendButtonClick(){

   model.getListOfAllApps();

}

@Override
public void addView(MainView view) {
    super.addView(view);
model=new MainModel();
}

}

public class MainModel {

public void getListOfAllApps(){
    final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);

}

}

having Problem ingetPackageManager (). queryIntentActivities (mainIntent, 0) .how es zu tun, als keinen Kontext hier zu haben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage