1
안녕하세요 android가 생겼습니다. 나는 내 위치의 위도 & latitude를 계산하고 정확한 시간 간격으로 & 시간을 업데이트하는 응용 프로그램을 개발합니다.이 응용 프로그램에서 데이터를 가져와 & Google지도에서 위치를 매핑합니다.이 응용 프로그램은 업데이트와 함께 정확하게 작동합니다 그러나 한 가지 문제는 휴대 전화가 잠겨있을 때이 애플리케이션이 작동하지 않는다는 것입니다.다시 열 때마다 응용 프로그램을 다시 시작하고 싶지 않음
- 나는 휴대 전화가 꺼져 다음하지 않는 한이 & 때까지 계속 실행 배경 &에서이 응용 프로그램을 실행합니다. 이 응용 프로그램은이 응용 프로그램에서 돌아간 후 응용 프로그램을 다시 열면 업데이트를 시작합니다.
- 해당 날짜의 마지막 업데이트 날짜 &을 표시하고자합니다. 응용 프로그램을 다시 시작하지 않음 & 업데이트 날짜가 없습니다 & 현재 개봉 시간부터의 시간입니다. 지속적으로 백그라운드에서 작업하는 것은 & 백그라운드에서 작동하는 활동을 표시합니다.
도와주세요 ... 내가
주요 활동의 내 코드가 여기에있다...
package com.ETrack;
public class ETrackActivity extends Activity {
public void acquire()
{ final String TAG = null;
PowerManager pm = (PowerManager)getApplicationContext().getSystemService(
getApplicationContext().POWER_SERVICE);
WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wl.acquire();
wl.release();
}
private static final List<? extends NameValuePair> nameValuePairs = null;
/** Called when the activity is first created. */
static TelephonyManager tm;
TextView GPS_Long_txtbx;
TextView GPS_Lat_txtbx;
static TextView last_update_time_txtbx;
TextView onfig_txtbx;
static String pswd_auth= "13579", server_host="helpdesk.cispl.com";
static String interval = "120";
String Saveinterval = "interval.txt";
String FILENAME3 = "savetime";
String Savetime = "savetime.txt";
Handler h = new Handler();
Runnable run = new Runnable()
{
@Override
public void run() {
MyLocation loc = new MyLocation(getBaseContext());
TextView longitude_view = (TextView) findViewById(R.id.GPS_Long_txta);
((TextView) longitude_view)
.setText(" " + String.valueOf(loc.gps_lon));
TextView latitude_view = (TextView) findViewById(R.id.GPS_Lat_txta);
((TextView) latitude_view).setText(" " + String.valueOf(loc.gps_lat));
long delaytime =(record * 1000);
last_update_time_txtbx = (TextView) findViewById(R.id.last_update_time_txt);
last_update_time_txtbx.setText(" " + String.valueOf(java.text.DateFormat.getDateTimeInstance()
.format(Calendar.getInstance().getTime())));
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String response = CallWebService(tm.getDeviceId(), loc.gps_lon, loc.gps_lat);
h.postDelayed(this, delaytime);
}
};
public void Saveinterval(String Saveinterval) {
try {
File dir = getFilesDir();
File file = new File(dir, Saveinterval);
if (file.exists())
file.delete();
FileOutputStream fos = openFileOutput(Saveinterval,
Context.MODE_PRIVATE);
fos.write(Saveinterval.getBytes());
fos.close();
} catch (Exception ex) {
ex.getMessage();
}
}
public int RestoreRecord0()
{
try
{
File dir = getFilesDir();
File file = new File(dir, Saveinterval);
if (!file.exists()) {
return Integer.parseInt(interval);
}
FileInputStream fileIS = new FileInputStream(file);
BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
String readString = new String();
String data = " ";
// just reading each line and pass it on the debugger
while ((readString = buf.readLine()) != null)
{
data += readString;
}
return Integer.parseInt(data);
}
catch (Exception ex) {
ex.getMessage();
}
return Integer.parseInt(interval);
}
int record = RestoreRecord0();
private static int activities = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
last_update_time_txtbx = (TextView) findViewById(R.id.last_update_time_txt);
last_update_time_txtbx.setText(" "+ String.valueOf(java.text.DateFormat.getDateTimeInstance()
.format(Calendar.getInstance().getTime())));
MyLocation loc = new MyLocation(this.getApplicationContext());
TextView longitude_view = (TextView)findViewById(R.id.GPS_Long_txta);
((TextView) longitude_view).setText(" "+String.valueOf(loc.gps_lon));
TextView latitude_view = (TextView)findViewById(R.id.GPS_Lat_txta);
((TextView) latitude_view).setText(" "+String.valueOf(loc.gps_lat));
//refresh_location(GPS_Long_txtbx,GPS_lat_txtbx);
final Button btnSkip = (Button) findViewById(R.id.btnRegister);
// btnSkip.setTypeface(face);
btnSkip.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click EditText et
Intent i = new Intent(ETrackActivity.this, Configuration.class);
//i.putExtra("Skip", "true");
// i.putExtra("Location", txtEmail.getText());
startActivity(i);
}
});
// last_update_time_txtbx = (TextView)findViewById(R.id.last_update_time_txt);
// last_update_time_txtbx.setText(" "+ String.valueOf(java.text.DateFormat.getDateTimeInstance()
// .format(Calendar.getInstance().getTime())));
// in this response variable it contains
String response = CallWebService(tm.getDeviceId(), loc.gps_lon, loc.gps_lat);
long delaytime =(record * 1000);
h.postDelayed(run, delaytime);
}
// public void refresh_location(View longitude_view, View latitude_view, View last_update_time_txtbx)
public void refresh_location(View longitude_view, View latitude_view)
{
longitude_view = (TextView)findViewById(R.id.GPS_Long_txta);
((TextView) longitude_view).setText(" "+String.valueOf(LocationService.GPS_Long));
latitude_view = (TextView)findViewById(R.id.GPS_Lat_txta);
((TextView) latitude_view).setText(" "+String.valueOf(LocationService.GPS_Lat));
// last_update_time_txtbx = (TextView)findViewById(R.id.last_update_time_txt);
// ((TextView) last_update_time_txtbx).setText(""+String.valueOf(java.text.DateFormat.getDateTimeInstance()
// .format(Calendar.getInstance().getTime())));
}
public void onNothingSelected(AdapterView<?> arg0) {
}
public void onClick(View view)
{
startActivity(new Intent(ETrackActivity.this,Configuration.class));
}
public String CallWebService(String imei, double longt, double lat) {
String response = new String();
String str = new String();
try {
String url = "http://helpdesk.cispl.com/etracking/track.php?imei="+imei+"&gps_lat="+ Double.toString(lat) +"&gps_lon="+Double.toString(longt);
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
URI webservice = new URI(url);
request.setURI(webservice);
HttpResponse httpResponse = client.execute(request);
HttpEntity responseEntity = httpResponse.getEntity();
if (responseEntity != null) {
response = EntityUtils.toString(responseEntity);
}
} catch (Exception e1){
e1.printStackTrace();
}
return response;
}
}
매우 감사 할 것 나에게 해결책을주지하시기 바랍니다 .....
일시 중지 및 재개 서비스를 사용합니다. 그러나 작동하지 않습니다. – bushra
사용법 예를 들어 주시겠습니까? – bushra