Saturday, October 10, 2015

[Androidannotations 사용하기] 2. Annotated activity 시작하기

이번 포스팅은 아주 간단하다~_~ annotate 된 Activity를 시작하는 방법이다.

annotated activity 시작하기

앞의 포스팅의 덧을 참고한다면 아주 쉽게 이해하고 할 수 있다. 본 포스팅을 건너뛰어도 좋다:D

안드로이드에서 Activity를 시작할 때 아래와 같이 해왔을 것이다!

startActivity(this, MyListActivity.class);

그러나 AndroidAnnotations를 사용한다면 반드시 MyListActivity_가 호출되어 시작되어야 한다!

startActivity(this, MyListActivity_.class);

Intent Builder

  • Since AndroidAnnotations 2.4
  • AndroidAnnotations 2.4버전 부터는 생성 된 Activity를 시작할 수 있도록 static helper를 제공한다.

    // Starting the activity
    MyListActivity_.intent(context).start();
    
    // Building an intent from the activity
    Intent intent = MyListActivity_.intent(context).get();
    
    // You can provide flags
    MyListActivity_.intent(context).flags(FLAG_ACTIVITY_CLEAR_TOP).start();
    
    // You can even provide extras defined with @Extra in the activity
    MyListActivity_.intent(context).myDateExtra(someDate).start();
    
  • Since AndroidAnnotations 2.7
  • Since AndroidAnnotations 2.7버전 부터는 startActivityForResult()도 동일하게 사용할 수 있다 ^_^

    MyListActivity_.intent(context).startForResult(REQUEST_CODE);
    

    결과 코드 및 추가 값을 얻기 위해 @OnActivityResult annotation을 사용할 수 있다~

    @OnActivityResult(REQUEST_CODE)
    void onResult(int resultCode) {
    }
    
  • Since AndroidAnnotations 3.3
  • AndroidAnnotations 3.3버전 부터는 intent builder를 이용해서 options을 Bundle parameter로 넘길 수 있당~!

    MyListActivity_.intent(context).withOptions(bundle).start();
    
  • Since AndroidAnnotations 4.0
  • AndroidAnnotations 4.0버전 부터는 Activity transition animations를 the fluent intent builder를 사용하여 추가 할 수 있다.

    MyListActivity_.intent(context).start().withAnimation(enterAnimRes, exitAnimRes));
    

    다음 포스팅에서는 Android Annotations의 동작 원리를 다시 살펴본 후, 사용하기를 계속 진행하도록 하겠다 ^_^

    참고 논문 및 사이트

    1. androidannotations wiki 중 "HowItWorks" https://github.com/excilys/androidannotations/wiki/HowItWorks#starting-an-annotated-activity

    No comments:

    Post a Comment