In recent years, energy saving have become an important issue, especially for mobile systems. Previous studies had used the prefetching and caching practices to create large disk idle time intervals to allow disks staying in low power states. In this paper, we enhance previous study by proposing a new disk state-aware task scheduler, called DATS, to further maximize the disk idle intervals. DATS considers both the disk power state and application characteristics. First, DATS differentiates between CPU-bound and I/O-bound processes. For I/O-bound processes, DATS further classifies random I/Os from sequential or loop I/Os. Based on the classified results, DATS schedules processes according to the current disk state, so as to maximize the length of disk idle periods. The experimental results show that, compared to the current Linux default scheduler, DATS can successfully increase the length of disk idle intervals and reduce the number of lengthy disk spin-up operations. Besides, since DATS reduces of the number of the lengthy disk spin-up operations, DATS not only reduce the disk energy consumption but also reduce the tasks' average turnaround times.