Php 手机进入睡眠状态后,gps服务进入睡眠状态
我有一个android应用程序,它由活动、接收器和服务组成。 “活动”仅在安装后启动一次,以设置用户名和密码并启动服务。接收器在手机启动后呼叫该服务。发生的情况是,该服务在手机进入睡眠状态后的一段时间进入睡眠状态,我需要它一直工作。我已经把对网站的呼叫放在一个线程中。这是服务Php 手机进入睡眠状态后,gps服务进入睡眠状态,php,android,gps,Php,Android,Gps,我有一个android应用程序,它由活动、接收器和服务组成。 “活动”仅在安装后启动一次,以设置用户名和密码并启动服务。接收器在手机启动后呼叫该服务。发生的情况是,该服务在手机进入睡眠状态后的一段时间进入睡眠状态,我需要它一直工作。我已经把对网站的呼叫放在一个线程中。这是服务 public class MyService extends Service { public int indikator=0; public String mojsadrzaj=new String(); public
public class MyService extends Service {
public int indikator=0;
public String mojsadrzaj=new String();
public String pib=new String();
public String username=new String();
public String password=new String();
public String url=new String();
public URL myURL;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this,"Service created ...",Toast.LENGTH_LONG).show();
final SQLiteDatabase db=openOrCreateDatabase("TruckMe", MODE_PRIVATE, null);
String idvozaca=new String();
db.execSQL("create table if not exists vozac (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, idvozaca VARCHAR(15));");
Cursor d=db.rawQuery("select idvozaca from vozac", null);
if(d.getCount() > 0)
{
d.moveToLast();
idvozaca=d.getString(d.getColumnIndex("idvozaca"));
mojsadrzaj=idvozaca;
}
final Time t=new Time();
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
public void run() {
if(indikator != 0)
{
try {
URL myURL = new URL(url);
URLConnection myURLConnection = myURL.openConnection();
myURLConnection.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(myURLConnection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
catch (MalformedURLException e) {
// new URL() failed
// ...
}
catch (IOException e) {
// openConnection() failed
// ...
}
}
indikator=1;
handler.postDelayed(this, 180000);
}
};
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setPowerRequirement(Criteria.POWER_LOW);
final LocationManager m=(LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
String locationprovider =m.getBestProvider(criteria,true);
LocationListener l=new LocationListener() {
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
}
@Override
public void onProviderDisabled(String arg0) {
}
@Override
public void onLocationChanged(Location arg0) {
String zauzetost=new String();
zauzetost="ZAUZET";
String format="MM/dd/yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.US);
String date= sdf.format(new Date());
t.setToNow();
String longitude=new String();
String latitude=new String();
String speed=new String();
if((int)arg0.getSpeed()==0)
{
speed="0";
}
else
{
speed=""+(((int)arg0.getSpeed()*3600)/1000);
}
longitude=""+ arg0.getLongitude();
latitude=""+ arg0.getLatitude();
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
mydate=mydate.replaceAll("\\s","");
url="http://www.compensatemeonline.com/truckmeonline/TruckMeOnline/S.php?id="+mojsadrzaj+"&a="+longitude+"&b="+latitude+"&c="+speed+"&d="+mydate+"&e="+date+"&f="+zauzetost;
Log.e("Poruka", url);
// TODO Auto-generated method stub
}
};
runnable.run();
m.requestLocationUpdates(locationprovider, 180000, 0, l);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public void onStart(Intent intent, int startId) {
//Toast.makeText(this, "Service started onstart...",Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
super.onDestroy();
final SQLiteDatabase db=openOrCreateDatabase("TruckMe", MODE_PRIVATE, null);
db.execSQL("drop table vozac;");
}
}
由于我不想让我的服务永远处于休眠状态,如果我将m.RequestLocationUpdate(locationprovider,180000,0,l)减少到60000,请将从oncreate调用gps到onstartcommant的所有内容或我应该做的其他事情都放在一起。持续打开gps和CPU将导致电池寿命极短。为什么这对用户有好处呢?因为它是一个应用程序,可以在用户未经通知的情况下跟踪用户。如果手机进入睡眠状态,我们不会一直呆在他不在的地方,不是吗。