2016-05-11 3 views
0

Я хочу, чтобы приложение выполняло другое приложениеПриложение для выполнения другого приложения

При загрузке устройства я установил фильтр намерений.

 <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 

из-за этого, начало основного приложения. В основном приложении я хочу только один раз выполнить одно приложение

Я пробую это.

Главная

@Override 
protected void onCreate(final Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    SharedPreference wmbPreference = PreferenceManager.getDefaultSharedPreferences(this); 
    boolean isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); 
    if (isFirstRun) { 
     Intent intent = getPackageManager().getLaunchIntentForPackage("another app package name"); 
     startActivity(intent); 
     SharedPreferences.Editor editor = wmbPreference.edit(); 
     editor.putBoolean("FIRSTRUN, false); 
     editor.commit(); 
    } 
} 

но этот код не работает. возможно, кто-нибудь знает другой способ сделать это?

Благодаря

добавить

SharedPreferences wmbPreference = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
    boolean isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); 
    if (isFirstRun) { 
     startActivity(new Intent(getApplicationContext(), AutoUpdate.class)); 
     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
     SharedPreferences.Editor editor = preferences.edit(); 

     editor.putBoolean("FIRSTRUN", false); 
     editor.apply(); 
     finish(); 
     }` 

ответ

0

Для того, чтобы ответить на действия ACTION_BOOT_COMPLETED необходимо реализовать радиовещательный приемник, зарегистрированный в манифесте. Ваша заявка также должна использовать разрешение RECEIVE_BOOT_COMPLETED.

Пожалуйста, обратитесь здесь для получения дополнительной информации:

http://developer.android.com/reference/android/content/Intent.html#ACTION_BOOT_COMPLETED

Обратите внимание, что приложение должно работать Ui элементов, по крайней мере один раз для приемника, чтобы иметь возможность зарегистрировать для этого действия.

Затем переопределите метод onReceive вашего приемника, чтобы запустить приложение. Также обратите внимание, что при запуске операции из контекста приемника вы должны добавить флаг NEW_TASK.

+0

спасибо, но ваш ответ, кажется, чтобы не исправить. Я хочу, чтобы при запуске Main App приложение для проверки обновлений приложения запускалось только один раз. поэтому я попробую 'startActivity' – chohyunwook

+0

. Тогда зачем вам загружать завершенное действие ??? – daxgirl

+0

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

0

В моем случае я делаю это так. Я не использую android.intent.action.BOOT_COMPLETED

Вот мой код:

Main.java

public class Main extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     SharedPreference wmbPreference = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
     boolean isFirstRun = wmbPreference.getBoolean("FIRSTRUN", true); 
     if (isFirstRun) { 
      startActivity(new Intent(getApplicationContext(), Login.class)); 
      SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); 
      SharedPreferences.Editor editor = preferences.edit(); 

      editor.putBoolean("FIRSTRUN", false); 
      editor.apply(); 
      finish(); 
     } 
    }  
} 

и в AndroidManifest

<activity 
    android:name=".activities.Main" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
+0

спасибо, но у меня есть вопрос: сначала мое приложение Main запускается SplashActivity.class, показывая 5 секунд и заканчивая 5 секунд, показывая main.class – chohyunwook

+0

, поэтому я думаю, что мой главный. class manifest не добавляет умывальник-фильтр 'android.intent.action.MAIN',' android.intent.category.LAUNCHER'. – chohyunwook

+0

, и я хочу другое приложение 'startActivity' – chohyunwook