public class IdService extends Service { private UploadFilesTask task; DBAdapter dbs; @Override public IBinder onBind(Intent i) { return null; } @Override public void onCreate() { super.onCreate(); } @Override public void onStart(Intent intent,int startId) { super.onStart(intent,startId); if(Networking.isNetworkAvailable(this)){ if ( intent.hasExtra("start") && taskIsNotRunning() ) { task = new UploadFilesTask(); task.execute(); } } else{ if ( intent.hasExtra("start") && taskIsNotRunning() ) { Calendar cal = Calendar.getInstance(); cal.add(Calendar.MINUTE,5); String start = "start"; Intent i = new Intent(IdService.this,IdService.class); i.putExtra("start",start); PendingIntent sender = PendingIntent.getService(this,192837,i,PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),sender); } } } private boolean taskIsNotRunning() { return task == null || task.getStatus() != AsyncTask.Status.RUNNING || task.isCancelled(); } @Override public void onDestroy() { super.onDestroy(); } private class UploadFilesTask extends AsyncTask<Object,Object,Object> { @Override protected Object doInBackground(Object... arg0) { sqliteDatabase db = dbs.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DBAdapter.ID,"blank"); db.insert(DBAdapter.Table,null,values); return null; } @Override protected void onPostExecute(Object result) { super.onPostExecute(result); stopSelf(); } } }
我想运行一个服务,它将值插入sql数据库中的表.如果没有互联网连接,我希望它等待5分钟,然后再次运行该服务.
代码中的问题是在sqliteDatabase db = dbs.getWritableDatabase();
我可以评估服务中的数据库吗?如果是这样,我如何让我运行代码?谢谢
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。