2013-02-23 16 views
6

Używam https://stackoverflow.com/a/14353076/1327384, aby zaktualizować mój program na Androida, ale po aktualizacji mojego programu będzie zamknięty, więc chcę go ponownie otworzyć po zakończeniu procesu aktualizacji, jak mogę to zrobić?Otwórz mój program Android po aktualizacji

użyłem tej klasy

package services; 
    public class PackageChangeReceiver extends BroadcastReceiver { 
     @Override 
      public void onReceive(Context ctx, Intent intent) { 
      Uri data = intent.getData(); 
      boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false); 

      Intent intent1 = new Intent(ctx, service.class); 
      ctx.startService(intent1); 
      Log.d("service", "Action: " + intent.getAction()); 
      Log.d("service", "The DATA: " + data); 
      } 

    } 

i to mainfest

<receiver android:name="services.PackageChangeReceiver" > 
      <intent-filter> 
       <action android:name="android.intent.action.PACKAGE_REMOVED" /> 
       <action android:name="android.intent.action.PACKAGE_REPLACED" /> 
       <action android:name="android.intent.action.PACKAGE_ADDED" /> 

       <data android:scheme="package" /> 
      </intent-filter> 
     </receiver> 

ale nadal odbierać zamiar po I uruchomić aplikację ręcznie

Odpowiedz

1

może być AlarmManager może pomóc? Możesz ustawić zadanie, aby rozpocząć działanie aplikacji, na przykład w 40 sekund po pobraniu pliku apk i kliknięciu przez użytkownika, aby go zainstalować.

3

a) Spójrz na android.intent.action.PACKAGE_REPLACED.

b) Sądzę, że jeśli twoja aplikacja ma lepkie usługi, ta usługa zostanie ponownie uruchomiona po aktualizacji pakietu.

+0

co pan myśli o lepkiej usługi –

+1

2forshubi: Miałem na myśli to: http://developer.android.com/reference/android/app/Service.html#START_STICKY –

+0

staram android.intent.action.PACKAGE_REPLACED. ale działa po tym, jak otwieram program, więc chcę, żeby to działało wcześniej, jak mogę to zrobić? –

Powiązane problemy