Android: Разбиране на os sendBroadcast(Intent i)?

Нов съм в android. Можех да разбера концепцията за Broadcast Receivers, но не можах да разбера концепцията за sendBroadcast(Intent i).. Основното ми съмнение е кой ще слуша това sendBroadcast.

public class OOVOOActivity extends Activity {
    /** Called when the activity is first created. */
    public static int count = 0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        addShortcut();
 }

    private void addShortcut(){  
        Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");

        // Shortcut name
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.app_name));  
        shortcut.putExtra("duplicate", false);  // Just create once

        // Setup current activity shoud be shortcut object 
        ComponentName comp = new ComponentName(this.getPackageName(), "."+this.getLocalClassName());  
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent(Intent.ACTION_MAIN).setComponent(comp));  

        // Set shortcut icon
        ShortcutIconResource iconRes = Intent.ShortcutIconResource.fromContext(this, R.drawable.search);  
        shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconRes);  

        sendBroadcast(shortcut);  
    }

Имам няколко въпроса да задам,

  1. В горния код не се използва тост съобщение, но ако стартирам приложението, мога да видя тост съобщението. Моля, обяснете как идва и също така ми кажете как да скрия тези тост съобщения.
  2. Можете да видите sendBroadcast(пряк път);, всъщност кой ще слуша това предаване.

Моля, изчистете съмнението ми. Благодаря


person Sudarshan    schedule 01.08.2012    source източник


Отговори (1)


Можете да видите sendBroadcast (пряк път); , общо взето кой ще слуша това предаване.

Някое друго приложение или приложения. Нито едно приложение не може да получи това излъчване. 999 приложения може да получат това излъчване. Това зависи от потребителя и разработчиците на тези други приложения.

В този случай вие приемате, че има едно или повече приложения на устройството, които ще отговорят на com.android.launcher.action.INSTALL_SHORTCUT излъчване. Моля, обърнете внимание на com.android. Това означава, че това Intent действие не е част от Android SDK. com.android се използва за части от средата на Android. Както се оказва, това Intent действие не е документирано, което означава, че може или не може да работи на всички устройства и версии на Android OS.

Моля, обяснете как идва

Други разработчици, освен вас, могат да пишат код, който показва Toast съобщения. Те дори могат да напишат код, който показва Toast съобщения в отговор на излъчване Intent. Оказва се, че вашата тестова среда съдържа такъв код, вероятно в приложението com.android.launcher.

също ми кажете как да скрия тези тост съобщения

Вие не го правите.

person CommonsWare    schedule 01.08.2012
comment
всяко приложение може да се регистрира за получаване на това намерение, когато бъде задействано. - person Guy; 05.09.2012