Handler一直提出意图

时间:2014-07-06 06:42:14

标签: android android-intent handler

当我刷新我的活动类以获取一些MySQL变量时,活动会按照预期每隔60秒刷新一次,但令人讨厌的部分是,即使我目前没有专注于应用程序,甚至在另一个应用程序上,活动不断弹出并关闭我目前正在工作的活动。我可以在xml或Handler方法中做些什么来让应用程序在后台进行刷新或替代?

这是onCreate方法中的Handler方法;

final Handler handler = new Handler(); 
final Runnable r = new Runnable()
{
public void run() 
{
    json = jParser.makeHttpRequest(url_all_products, "GET", params);
    Intent i = new Intent(getApplicationContext(), AllProductsActivity.class);
    finish();
    startActivity(i);
    handler.postDelayed(this, 60000);
}
};
handler.postDelayed(r, 60000);

1 个答案:

答案 0 :(得分:0)

这是因为即使应用程序在后台运行,runnable仍会继续执行。因此,想法是在发生这种情况时取消runnables。

解决方案:

在onPause()内: handler.removeCallbacks(r);

在onResume()内: handler.postDelayed(r)

这将确保每当活动最小化/离开屏幕时,都不会刷新,但一旦再次到达活动,它就会启动。