停止来自其他活动的动画

时间:2015-09-01 14:46:12

标签: android

我有一个活动,我有一个菜单图标,当我按下动画开始的图标时,这是为了在加载数据时显示一些反馈,所以我想在应用程序停止同步数据时停止动画,问题是在TabActivity中我启动动画,在MyHandler中我管理同步进度

这里我开始动画(BaseActivity):

public boolean onOptionsItemSelected(MenuItem item) {
            Animation animation = AnimationUtils.loadAnimation(this, R.anim.sync_anim);
            animation.setRepeatCount(Animation.INFINITE);
            findViewById(R.id.update_data).startAnimation(animation);

            Animation a = AnimationUtils.loadAnimation(this, R.anim.sync_anim);

            findViewById(R.id.update_data).startAnimation(a);

这里是数据完成同步(MyHandler):

                @Override
            public void run() {

                Calendar calendar = Calendar.getInstance();
                String str = new SimpleDateFormat("yyyy-MM-dd",java.util.Locale.getDefault()).format(calendar.getTime());
                str = "2015-08-01";
                MyHandler.this.context.getSharedPreferences("DateTime",Context.MODE_PRIVATE).edit().putString("user_time", str).commit();


                if ((n > 100) && (n < 200)) {                                           
                    Log.e("MyHandler", "100 200");
                    MyApplication.CloseLoadingProgress();

                    String strtoShowToast = new SimpleDateFormat("dd MMM yyyy",java.util.Locale.getDefault()).format(calendar.getTime());
                    Globals.lastUpdateDate = strtoShowToast;
                    MyHandler.this.context.getSharedPreferences("DateTime",Context.MODE_PRIVATE).edit().putString("user_time", new SimpleDateFormat("yyyy-MM-dd",java.util.Locale.getDefault()).format(calendar.getTime())).commit();
                    Toast.makeText(MyApplication.getInstance(),
                                    context.getResources().getString(R.string.bluetooth_updateDataNow)+" "+strtoShowToast,Toast.LENGTH_SHORT).show();
                }

1 个答案:

答案 0 :(得分:0)

解决方案是在MyHandler上发送广播接收器并在我的BaseActivity上接收它