0

我是安卓新手。我可以理解广播接收器的概念,但我无法理解 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 消息,但是如果我运行应用程序,我可以看到 toast 消息。请解释它是如何出现的,并告诉我如何隐藏那些 toast 消息。
  2. 你可以看到sendBroadcast(shortcut); ,基本上谁会听这个广播。

请清除我的疑问。感谢你

4

1 回答 1

1

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

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

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

请解释一下它是怎么来的

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

也告诉我如何隐藏那些吐司味精

你没有。

于 2012-08-01T10:56:21.720 回答