我有两个应用程序,并且正在尝试将意图从一个发送到另一个,但是意图从未实现,onReceive()
但是此问题只是一种方法。第一个应用程序可以发送给第二个,但第二个应用程序不能发送回信息。我正在使用不同的意图动作来从第二个发送到第一个,但除此之外它们是相同的。关于为什么这可能行不通的任何想法?我已经尝试了所有我能想到的一切,并且阅读了我在这里可以找到的大多数帖子,但都没有成功。
它并没有崩溃,也没有给我任何有关logcat中正在发生什么的指示,它只是什么也没做。
发送功能
private void sendFinishLog(String ID, String Cond)
{
Log.d("me", "send finish log");
Intent logIntent = new Intent();
logIntent.putExtra("ID", ID);
logIntent.putExtra("Cond", Cond);
logIntent.setAction("com.me.intent.finishlog");
Log.d("me","logIntent : " + logIntent.toString()
+logIntent.getExtras().toString());
sendBroadcast(logIntent);
}
上课
public class LogReceiver extends BroadcastReceiver {
public static ArrayList<LogDataHolder> logData = new ArrayList<LogDataHolder>();
private boolean found;
static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
private static String lasttime;
private static String now = "Boot time";
@Override
public void onReceive(Context cont, Intent logIntent)
{
Log.d("me","On receive");
etc.....
}
接收应用清单
<!-- for receiving logs -->
<receiver
android:name = "LogReceiver"
android:enabled="true">
<intent_filter>
<action android:name="com.me.intent.finishlog" />
</intent_filter>
</receiver>
就像是:
public void onResume() {
IntentFilter filter = new IntentFilter();
getActivity().registerReceiver(mLogReceiver,filter);
}
并取消注册:
public void onPause() {
getActivity().unregsiterReceiver(mLogreceiver);
}
编辑:我只是认为您的LogReceiver类也没有构造函数。您还需要编写一个:
private LogReceiver mLogReceiver = new LogReceiver() {
然后,您可以像在代码中已经使用onReceive方法一样使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句