我正在创建一个应用程序,需要检查文件是否存在,比方说,10秒。如果文件中写有“SEND”,则发送消息,否则不执行任何操作。 我怎么能创建一个线程/进程,如果有文件,每10秒检查一次,即使我关闭应用程序?可能吗? 这是我的代码:
public class BootListener extends BroadcastReceiver {
public BootListener() {
}
@Override
public void onReceive(Context context, Intent intent) {
context.startService(new Intent(context, FileCheckerService.class));
}
}
public class FileCheckerService extends Service {
public FileCheckerService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
TimerTask task = new TimerTask() {
@Override
public void run() {
SmsManager newSms = SmsManager.getDefault();
newSms.sendTextMessage(
"+39334659348",
null,
"TRY",
null,
null);
}
};
Timer timer = new Timer();
timer.schedule(task, 0, 20000);
return START_STICKY;
}
public static String convertStreamToString(InputStream is) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
return sb.toString();
}
}
答案 0 :(得分:0)
尝试使用服务。详细了解使用服务的正确方法:
http://developer.android.com/reference/android/app/Service.html
答案 1 :(得分:0)
使用带有覆盖startCommand
返回Service.start_sticky
标志的应用程序上下文创建服务,并在其中设置线程,其中set while循环如下所示
while(true)
{
yourThreadReference.sleep(10000); // this is 10 seconds
// do your work
}