안녕하세요,

application widget 을 만들고 있는 중인데, home 화면에 보이는 바탕화면 위젯에서 텍스트를 애니매이션 효과를 주어
뿌려주고 싶습니다.
(1. 단순히 ArrayList에 있는 내용을 순차적으로 뿌려주고 이동시키고 뿌려주고 이동시키는 애니매이션)
(2. ArrayList의 첫번째 내용을 뿌려주고, 5초후에 이 내용이 위로 올라가고, 두번째 내용이 아래로부터 올려와서 뿌려지는 효과)
(3. ViewFlipper예제의  R.anim.push_up_in, R.anim.push_up_out 을 썼을때와 같은 효과)


열심히 구글링 해봤는데, 위젯에서의 애니매이션은 불가능하다..라는 결론을 얻었는데, 혹시나 뭔가 방법이 있을까 하여
질문 올려봅니다. (애니매이션과 관련된 기존 class들을 사용 못하는걸로 구글링중에 읽었습니다)

그리고, 우선은 애니매이션이 불가능하다고 생각하고, 그냥 5초 간격으로 내용이나 바뀌게 해주자..라는 생각으로.. 아래 코드와 같이
구현하였는데, 이렇게 구현하니까.. 동작이 되긴 하는데.. 대략 30분정도 지나면 에뮬이 뻗어버립니다.
혹시나 싶어서.. 실제 폰에도 올려봤는데... 그것도 뻗어버립니다. 왜 그런건지 조언좀 부탁드립니다.

아래는 android manifest 에 receiver로 정의한 class에서 화면에 뿌려주는것과 연관된 부분의 source code 입니다.
 @Override
 public void onReceive(Context context, Intent intent) {
     super.onReceive(context, intent);
     mContext = context;
     if (intent.getAction().equals(REFRESH_BUTTON_CLICK_INTENT)) {
         renewTimes = 0;
         setGuiTimer(mContext);
     }
 }


 private void setGuiTimer(Context context) {
     renewGUI renewGui = new renewGUI(context);
     if(mTimer == null) {
         mTimer = new Timer();   
         mTimer.scheduleAtFixedRate(renewGui, 0, 5000);    // 5초 timer setting
     } else {
         renewGui.run();
     }
 }


 private class renewGUI extends TimerTask {
     RemoteViews mRemoteView;
     AppWidgetManager mAppWidgetManager;
     ComponentName thisWidget;
  
     public renewGUI(Context context) {
         mAppWidgetManager = AppWidgetManager.getInstance(context);
         mRemoteView = new RemoteViews(context.getPackageName(), R.layout.my_widget);
         thisWidget = new ComponentName(context, MyWidget.class);
     }
  
     @Override
     public void run() {
     if(mMyInfo != null) {     // mMyInfo 는 MyInfo type의 ArrayList
         if(renewTimes >= mMyInfo.size()) renewTimes = 0;
         MyInfo myinfo = mMyInfo.get(renewTimes);
    
         mRemoteView.setTextViewText(R.id.widget_main_name, myinfo.name);
         mRemoteView.setTextViewText(R.id.widget_main_phone, myinfo.phone);    
         mRemoteView.setTextViewText(R.id.widget_main_email, myinfo.email );    
         mRemoteView.setTextViewText(R.id.widget_main_home, myinfo.home);
    
         mAppWidgetManager.updateAppWidget(thisWidget, mRemoteView);
         renewTimes++;
     }   
 }