2014-10-05 76 views
0

我是新来的Android和Java。 我所拥有的是具有处理程序(h_main)和可运行(r_test)的活动。 *可运行程序在onStart()的活动中调用。 *可运行调用一个函数,通过Log.d获取我的反馈(TAG,“tick ..”)。 *在函数结束时,可运行的get被再次调用,延迟时间为1000ms。如何避免从主屏幕恢复重复活动

这样,我得到了我的功能每秒调用什么工作正常。 但是,当我回到Android的主屏幕并返回到我的应用程序,我得到了 每秒两个'蜱'。 现在我的活动现在运行了两次。我怎样才能避免这种情况?

@Override 
protected void onStart() { 
    super.onStart(); 
    Log.d(TAG,"onStart()"); 
    h_main.postDelayed(r_test, 1000); 
} 

public void timer_runable() { 
    Log.d(TAG,"tick.."); 
    h_main.postDelayed(r_test, 1000); 
} 

回答

0

解决的办法是你CANCLE未决可运行在onPause()

@Override 
protected void onPause() { 
    super.onPause(); 
    h_main.removeCallbacks(r_test); 
} 
+0

是否有保持运行,而应用程序是在后台的方法吗?我想在某些情况下收到通知,它们可能在应用不在前台时出现。 – BastelWastel 2014-10-05 14:34:23

+0

达到此目的的正常方法是使用服务。 – rekire 2014-10-05 14:35:13

+0

那么,没有快速/简单的方法吗?我希望在开始讨论新话题之前,先把注意力集中在一半的功能上。 – BastelWastel 2014-10-05 14:39:11