Reputation: 81
Using handler wants to run periodically The count is 0, if the countis 1, else Please fix this code.
mRunnable = new Runnable(){
@Override
public void run() {
if (count == 0) {
setImage();
count = 1;
} else {
weather = mContentResolver.getType(mUri);
setWeather(weather);
count = 0;
}
}
};
mHandler = new Handler();
mHandler.postDelayed(mRunnable, 3000);
Upvotes: 7
Views: 13203
Reputation: 133580
Try the below
m_Handler = new Handler();
mRunnable = new Runnable(){
@Override
public void run() {
if(count == 0){
// do something
count = 1;
}
else if (count==1){
// do something
count = 0;
}
m_Handler.postDelayed(mRunnable, 3000);// move this inside the run method
}
};
mRunnable.run(); // missing
Also check this
Upvotes: 10
Reputation: 4425
private Handler handler = new Handler();
handler.post(timedTask);
private Runnable timedTask = new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
cnt++;
if(cnt==0)
{
//set you view or update your
}
handler.postDelayed(timedTask, 500);
}};
}
Upvotes: 0
Reputation: 18509
You should go for Timer and TimerTask in that case. Below is a small example:
//Declare the timer
Timer t = new Timer();
//Set the schedule function and rate
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//Called each time when 1000 milliseconds (1 second) (the period parameter)
//put your code here
}
},
//Set how long before to start calling the TimerTask (in milliseconds)
0,
//Set the amount of time between each execution (in milliseconds)
3000);
Hope this is what you needed.
Upvotes: 5