2014-08-28 29 views
-2

我有两个不同的活动。如何使用广播在两个活动之间接收和发送数据

在第一个活动中,我点击一个按钮,然后发送广播。

第二个活动可以接收广播,并做下一个事件。

如何使用动态寄存器广播来做到这一点?

+0

您从一个'Activity'使用'Intent'演员和调用'startActivity(...)'与'Intent'发送数据到另一个。 – Squonk 2014-08-28 07:56:59

回答

1

您不能同时运行多个活动,因此您的BroadcastReceiver必须在该类之外,如this教程。

一旦你的BroadcastReceiver被触发,你可以启动你的第二个活动,使用某些参数来知道你必须触发第二个活动。

尽管如此,另一种可能的解决方案可能是直接从按钮点击开启第二个活动,你不觉得吗?

-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); 

    } 


} 
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) 

不能使用广播接收器的活动之间通过增值经销商,因为他们没有在同一时间运行。

0

如果你想从一个活动向另一个活动广播数据,只需使用意图。在你的第二个活动的onDestroy方法创建意图对象和广播数据作为意图额外的然后,使用intent.getExtra()方法onReceive()方法你的broadcastReceiver类。

有关详细信息: follow this tutorial

相关问题