嗨我是android的新手。我创建了一个应用程序,并使用首选项进行设置。我使用列表首选项设置为1,10,6分钟。现在我想应用一个函数,以便在每个时间间隔刷新另一个活动。
beerPref2
.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference,
Object newValue) {
// TODO Auto-generated method stub
final ListPreference listrefresh = (ListPreference) preference;
final int idx = listrefresh
.findIndexOfValue((String) newValue);
if (idx == 0) {
} else if (idx == 1) {
// System.out.println("2");
} else if (idx == 2) {
System.out.println("3");
} else {
System.out.println("4");
}
return true;
}
这是首选项屏幕的代码。现在我有另一个名为DetailPage的类。这个课我们要重装。你能否完成这段代码。我已经尝试了很多但却无法做到。我是android的新手,想要实现它。请帮助我完成此代码。我将如何在特定时间间隔内加载另一个班级?我的意思是说,如果我们选择1分钟,那么活动应该每1分钟重新加载一次。如果我们选择10分钟,那么应用程序应该每10分钟重新加载一次......帮助我实现这个
答案 0 :(得分:0)
答案 1 :(得分:0)
在一个活动中,你可以使用android中的ScheduledFuture类以固定的间隔执行runnable并使用scheduleAtFixedRate函数查看http://developer.android.com/reference/java/util/concurrent/ScheduledExecutorService.html 了解更多信息
public class DetailPage extends Activity {
private final ScheduledExecutorService checkCurrentTime=Executors.newScheduledThreadPool(1);
private ScheduledFuture scheduledTimeChecker ;
private final Runnable timeChecker = new Runnable() {
@Override
public void run() {
doInBackground(str);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
startTimeSchecker();
}
protected Void doInBackground(String Url) {
detailed_news = dh.get_detail_news(id[i],catagoryid);
allData.add(detailed_news);
}
private void startTimeSchecker(){
if(scheduledTimeChecker==null ||scheduledTimeChecker.isCancelled()){
scheduledTimeChecker =checkCurrentTime.scheduleAtFixedRate(timeChecker, 10, 60,java.util.concurrent.TimeUnit.SECONDS );
}
}
}