Android:了解os sendBroadcast(Intent i)?

时间:2012-08-01 09:49:27

标签: android broadcastreceiver

我刚接触到android。我能理解广播接收器的概念,但我无法理解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. 在上面的代码中没有使用 toast message ,但是如果我 运行应用程序我可以看到吐司消息.Plz解释它是如何来的 还告诉我如何隐藏那些吐司信息。
  2. 你可以看到 sendBroadcast(快捷方式); ,基本上谁会听这个广播。
  3. 普拉兹清楚我的怀疑。谢谢你

1 个答案:

答案 0 :(得分:1)

  

你可以看到sendBroadcast(快捷方式); ,基本上谁会听这个广播。

其他一些应用或应用。没有应用可能会收到此广播。 999个应用可能会收到此广播。这取决于用户和其他应用程序的开发人员。

在这种情况下,您假设设备上有一个或多个应答com.android.launcher.action.INSTALL_SHORTCUT广播的应用。请注意com.android。这意味着此Intent操作不属于Android SDK。 com.android用于Android环境的各个部分。事实证明,此Intent操作未记录,这意味着它可能适用于所有设备和Android操作系统版本,也可能不适用。

  

Plz解释它是如何发生的

除了您之外,其他开发人员可以编写显示Toast消息的代码。他们甚至可以编写显示Toast消息的代码以响应广播Intent。事实证明,您的测试环境包含此类代码,可能在com.android.launcher应用程序中。

  

还告诉我如何隐藏那些toast msg

你没有。