null pointer check? the activity may be null if the timeout meets, right?