我刚接触到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);
}
我有几个问题要问,
答案 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
你没有。