액티비티를 실행할 때 예전에는 이렇게 했습니다
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("key1","val1");
it.putExtra("key2","val2");
startActivity(it);Code language: JavaScript (javascript)
모든 액티비티가 본인이 만든 것은 아니라는 점을 생각해 본 적 있으신가요?
이런 경우 다른 액티비티를 실행하려면 담당 개발자에게 물어보거나 문서를 확인해야 합니다.
하지만 이 방식은 꽤 번거롭지 않나요?
더 좋은 해결 방법은 없을까요?
액티비티 실행 로직을 다른 담당자에게 맡길 수는 없을까요?
즉 각 액티비티 제작자가 액티비티 내부에 메서드를 추가하고, 다른 사람이 이 메서드를 호출해서 액티비티를 실행하는 방식입니다.
Intent it = new Intent(MainActivity.this,NormalActivity.class);
it.putExtra("site","www.foxdevelop.com");//자신의 액티비티에서 다른 액티비티 실행
//대상 액티비티가 요구하는 데이터를 알아야 하므로 해당 개발자와 협의해야 함
startActivity(it);Code language: JavaScript (javascript)
이제 한번 적용해 봅시다. 대상 액티비티에 정적 메서드를 추가합니다.
//액티비티 실행 코드를 대상 클래스 안에 작성
public static void actionStart(Context context, String site, int level)
{
Intent it = new Intent(context,NormalActivity.class);
it.putExtra("site",site);
it.putExtra("level",level);
context.startActivity(it);
}Code language: JavaScript (javascript)
NormalActivity.actionStart(MainActivity.this,"www.foxdevelop.com",12);Code language: CSS (css)
액티비티 실행의 더 나은 방식
Previous: 액티비티 조작