我只是想在Androids活动中创建一个简单的广播,但它不起作用。
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent i = new Intent("android.intent.action.UMS_CONNECTED");
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.UMS_CONNECTED");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getApplicationContext(), "connected", Toast.LENGTH_LONG).show();
}
};
registerReceiver(receiver, filter);
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="usb.usbd"
android:versionCode="1"
android:versionName="1.0">
<uses-feature android:name="android.hardware.usb.host" />
<uses-sdk android:minSdkVersion="12" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".UsbddActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.UMS_CONNECTED" />
<action android:name="android.intent.action.UMS_DISCONNECTED" />
</intent-filter>
</activity>
</application>
</manifest>
屏幕显示在我的Xoom上,但是没有显示吐司。 Xoom通过USB连接,因此它应显示toast /
答案 0 :(得分:2)
您无法从 a BroadcastReceiver
中启动对话框(并且不应启动Toast)。而是让BroadcastReceiver
启动另一个组件(活动/服务等)来做某事。要显示Toast
,只需创建另一个Activity
并调用它,或者在当前显示该Activity
的{{1}}上创建一个方法并调用它。接收器的整个想法是你尽可能少地在onReceive
内做出来,然后离开,接线,这不是你工作的地方。
当BroadcastReceiver接收Intent广播时调用此方法。在此期间,您可以使用BroadcastReceiver上的其他方法来查看/修改当前结果值。该函数通常在其进程的主线程中调用,因此您永远不应该在其中执行长时间运行的操作(在考虑阻塞接收器和被杀死的候选者之前,系统允许超时10秒) 。您无法在onReceive()的实现中启动弹出对话框。
您无法在onReceive()的实施中启动弹出式对话框
答案 1 :(得分:0)
试试这个吐司功能:
Toast.makeText(getBaseContext(),“connected”,Toast.LENGTH_LONG)。show();
我的应用程序中也遇到了类似的问题,然后我将getApplicationContext()更改为getBaseContext(),然后它对我有效。
答案 2 :(得分:0)
Android操作系统没有播放此类事件,因此您的接收器不会收到任何内容并且不会显示吐司。当设备插入或拔出USB设备时,我花了很多时间试图抓住一些东西,但似乎没有广播这些动作。