2013-07-18 3 views
-2

Я разрабатываю приложение, которое нужно подключаться к серверу один раз в час. Это происходит без того, что пользователь должен открыть приложение.Запустить процесс в фоновом режиме в Android

  1. Могут ли приложения работать в фоновом режиме? Если кто-то, использующий мое приложение, играет в игру, когда мое приложение должно подключиться к серверу, мое приложение может подключиться, не прерывая пользователя, играющего в свою игру. Я знаю, что I-Phone позволяет только одному стороннему приложению запускаться за раз, отличается ли IOS?

  2. Предполагая, что приложения могут работать как фоновые процессы, могут ли они оставаться открытыми навсегда? Я знаю, что почти все новые телефоны фактически не дают пользователю возможности по-настоящему прекратить работу приложения, и система фактически прекратит программы, когда захочет.

  3. Если приложения не могут работать в фоновом режиме и остаются открытыми навсегда, может ли приложение автоматически открываться телефоном каждый час?

Я смотрел на сигнализации приложений часы, так как они, кажется, фоновый процесс, который открыть/запустить в установленное время, которое именно то, что я хочу, чтобы мое приложение, чтобы сделать. К сожалению, я не могу найти хороший исходный код. Все примеры будильников требуют, чтобы приложение было открыто или сигнал тревоги не погас. Любая помощь приветствуется. (Пожалуйста, не мне ссылку на источник Google, я уже смотрел на это)

ответ

1

1-> Да, ваше приложение может подключаться к серверу в фоновом режиме, не прерывая пользователя. Для этого вам нужно использовать фоновое обслуживание.

2-> У вас может быть фоновое обслуживание, которое продолжает работать, но его действительно плохая идея, чтобы он работал навсегда. Это позволит разрядить аккумулятор и использовать память, процессор и сеть без необходимости. Система имеет контроль над приложениями, при необходимости может блокировать фоновые процессы.

3-> Я не думаю, что есть положение, с помощью которого вы можете автоматически открывать приложение. Если вы не используете какой-либо Сервис, который отправляет трансляцию или событие в приложение, которое запустит его. Это плохой дизайн. Пользователь не понравится, если его/ее телефон будет вести себя странно :)

1

Android есть что-то известное как

Услуга

Services вместе с Alarm Manager, должны решить вашу проблему ,

0

Да, вы можете создать простой класс обслуживания Как этот образец

MainFest Файл

<service 
     android:name="com.example.service.LocationUpdateSerivice" 
     class=".LocationUpdateSerivice" > 
     <intent-filter> 
      <action 
       android:name=".LocationUpdateSerivice" 
       android:value="com.pausefablogin.service.MY_SERVICE" /> 
     </intent-filter> 
    </service> 

код Java

import java.util.ArrayList; 
import java.util.List; 
import java.util.Timer; 
import java.util.TimerTask; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.protocol.HTTP; 
import org.apache.http.util.EntityUtils; 

import android.app.Service; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.location.Criteria; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.IBinder; 
import android.os.Looper; 
import android.util.Log; 
import android.widget.Toast; 



public class LocationUpdateSerivice extends Service implements LocationListener { 


    @Override 
    public void onCreate() { 
     super.onCreate(); 


     //I Have Created this class for location update use the concept 

    } 


    private void UpdateLocation() 
    {} 
    @Override 
    public void onStart(Intent intent, int startId) {  
     super.onStart(intent, startId); 
     Log.i(tag, "Service started..."); 
    } 
    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     Toast.makeText(this, "Service destroyed...", Toast.LENGTH_LONG).show(); 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

@Override 
public void onLocationChanged(Location arg0) { 


} 


@Override 
public void onProviderDisabled(String arg0) { 
    // TODO Auto-generated method stub 

} 


@Override 
public void onProviderEnabled(String provider) { 
    // TODO Auto-generated method stub 

} 


@Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 
    // TODO Auto-generated method stub 

} 








} 
Смежные вопросы