她正是我想要完成的事情:
我是这样做的:
的AndroidManifest.xml
<receiver
android:name=".MyBroadcastReceiver" >
<intent-filter
android:label="select my app">
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</receiver>
MyBroadcastReceiver.java
public void onReceive(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
//Some simple code
Toast.makeText(arg0, "My Receiver is cool", Toast.LENGTH_LONG).show();
}
这不起作用,我的应用程序没有显示在共享列表中。
为什么我使用BroadcatReceivers
而不使用Activities
?因为我不想要任何用户界面,我认为这就是为什么我们有接收器(纠正我的PLZ)
我做得对吗?
答案 0 :(得分:8)
这不起作用,我的应用程序没有显示在共享列表中。
ACTION_SEND
用于活动。您正在尝试使用BroadcastReceiver
。由于BroadcastReceiver
不是活动,因此无效。
我做得对吗?
没有
如果他选择我的应用程序,将运行一些简单的代码(如显示Toast)然后就是这样。无需界面或UI。
您仍然需要一项活动。但是,如果您提供活动Theme.NoDisplay
,并且未拨打setContentView()
,则该活动将没有用户界面。通常,您只需在执行任何操作后从finish()
调用onCreate()
(在这种情况下,显示Toast
)。
例如,this sample application显示的活动(FauxSender
)设置为您想要的内容:使用ACTION_SEND
回复Toast
。它还有另一项活动,可以发出ACTION_SEND
,以便您查看结果。