2016-03-21 20 views
1

Cihaz yeniden başlatıldığında çalıştırmak istediğim bir Cordova uygulaması geliştiriyorum. Şimdi bu Android 5.0.2 (Galaxy Tab S2) üzerinde çalışmasını sağlamak için bazı yerel Android kodları uyguladım ve bu iyi çalışıyor. Ancak, uygulamayı 4.4.4 ve 4.2.2 (Minix Z64 ve Minix X5) çalıştıran bir cihazda çalıştırırken bazı sorunla karşılaşıyorum.Uygulama tüm cihazlarda başlatılmıyor

Ben başlangıçta için aldığım etkinlik:

public class StartupActivity extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      Intent i = new Intent(context, MainActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

      context.startActivity(i); 
     } 
    } 
} 

Ve Manifest dosyasında bazı bilgiler

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<receiver android:enabled="true" android:exported="true" android:name="package.StartupActivity" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</receiver> 

Yani mesele Başlıyor beri app benim Galaxy Tab S2 çalışıyor olmasıdır önyükleme sırasında. Ancak, Android'in farklı sürümlerini çalıştıran diğer iki cihazda bu istek yanıt vermiyor.

Android geliştirmeye aşina değilim ama bu daha yeni bir Android sürümü üzerinde çalıştığından beri bunun bir uyumluluk sorunu olduğunu düşünüyorum, eğer bunun için bir çözüm var mı? Tercihen cihazı köklendirmeden.

+0

deneyin yerine bayrağı FLAG_ACTIVITY_NEW_TASK arayarak sorunu çözmek için Yönetilen . Ayrıca uygulamanın dahili depolama birimine kurulduğundan emin olun. – fRoStBiT

+0

Öneri için teşekkürler, bu durumun Minix'teki davranış üzerinde hiçbir etkisi yoktur. –

cevap

1

`dan amaç filtresini MainActivity.class önünde uygulamanın paket adını bildirerek ve` kaldırmak için FLAG_ACTIVITY_CLEAR_TOP

public void onReceive(Context context, Intent intent) { 
    Intent serviceIntent = new Intent(context, MY_PACKAGE_NAME.MainActivity.class); 
    serviceIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(serviceIntent); 
} 
İlgili konular