我有两种不同的活动。
在第一个活动中,我点击一个按钮,然后发送广播。
第二项活动可以接收广播,并进行下一次活动。
如何使用动态注册广播来执行此操作?
答案 0 :(得分:1)
您不能同时运行多个活动,因此您的BroadcastReceiver
必须在this教程中的该类之外。
触发BroadcastReceiver
后,您可以使用某些参数启动第二项活动,以便知道您必须触发第二项活动。
然而,另一种可能的解决方案是直接打开按钮点击的第二个活动,你不觉得吗?
答案 1 :(得分:0)
在两个活动之间传递信息的正确方法是使用Intent。 阅读本文 - http://developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(key, value);
startActivity(intent);
在SecondActivity上,您可以获得这样的信息 -
int x = getIntent().getExtras().getInt(key)
您无法使用BroadcastReceiver在活动之间传递变量,因为它们不会在同一时间运行。
答案 2 :(得分:0)
如果要将数据从一个活动广播到另一个活动,只需使用Intent即可。在第二个活动的vapor clean && vapor xcode
方法中,创建Intent对象并将广播数据视为额外的意图,在onDestroy
类的intent.getExtra()
方法上使用onReceive()
方法。
了解更多详情: follow this tutorial
答案 3 :(得分:-1)
您需要更改清单文件,您需要添加以下代码
<receiver android:name="MyScheduleReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name="MyStartServiceReceiver" >
</receiver>
第二件事是发送活动和达到活动
发送:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
//do your stuff
Intent i=new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
}
return super.onKeyDown(keyCode, event);
}
接收:
public class MyReceiver extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
}
}