2015-02-18 1 views
0

Я пытаюсь вызвать основное действие, используя неявные намерения. Я даю как действие, так и категорию в намерениях, но перед началом работы система андроидов дает мне список приложений для выбора для открытия операции.Вызов основной деятельности с использованием неявных намерений (с указанием действия и категории)

Фрагмент кода Я использую для вызова основной деятельности следующим образом:

protected void initiateActivity(int requestCode, String value, String oper) { 
     Intent i = new Intent("android.intent.action.MAIN"); 
     i.addCategory("android.intent.category.LAUNCHER"); 
     i.putExtra("VALUE", value); 
     i.putExtra("OPER", oper); 
     startActivityForResult(i, requestCode); 
    } 

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

+0

почему вы пытаясь сделать это? – dvs

+0

просто экспериментальный проект! Дело в том, что моему приложению нужны три действия, а два (основной вид деятельности и активность2) имеют аналогичные макеты. Таким образом, вместо создания activity2, я пытаюсь повторно использовать только основную активность. – Kany

ответ

0

Похоже, что вам может потребоваться разделить с помощью фильтров намерения. Выглядит есть хорошее объяснение в этом посте:

How can I start MAIN activity with the help of <intent-filter>?

который рекомендует добавлять фильтры, такие как они ниже, или вы будете называть пусковую:

<activity android:name=".MyActivity" 
      android:configChanges="orientation|keyboardHidden" 
      android:windowSoftInputMode="stateHidden" 
      android:screenOrientation="portrait"> 
    <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    <intent-filter> 
      <action android:name="com.package.name.MyAction"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter>