【问题标题】:How to exchange data between two android activities in background to send data via bluetooth?如何在后台的两个 android 活动之间交换数据以通过蓝牙发送数据?
【发布时间】:2017-06-21 22:02:05
【问题描述】:

我需要将数据从Activity A 传递到Activity B 并在后台向后传递,因为Activity A 具有初始化类的方法,该类正在管理蓝牙连接,我无法从Activity B 初始化该类,因为Activity A 中的方法已经对其进行了初始化。

我尝试制作我需要制作static 的方法,但是从静态方法我无法从我的蓝牙类中调用non-static 方法:

   public static void setup(String address) {
            bt = new Bluetooth(this, handler);
            outStringBuffer = new StringBuffer("");
            bt.startConn(address);
        //Java throws error that bt is non-static
   }

所以我的问题:

  1. 当它是non-static时,有没有办法从另一个类调用setup()
  2. 如果答案是YES,怎么办?或者如果答案是NO如何在不调用任何方法的情况下传递数据。

请记住startActivityForResult()startActivity() 不会解决这个问题,因为我需要多次从Activity BA 发送数据,而Activity A 应该从我的蓝牙类中调用发送该数据的方法通过蓝牙传输数据。

P.S我找到了一种使用 ViewFlipper 的方法,但在我的情况下,这太复杂了,无法合并两个类。 而且我不能直接从Activity B 向蓝牙类发送数据,因为Activity A 已经打开了套接字,Java 会抛出无法启动活动之类的异常。

【问题讨论】:

  • 你试图从活动中传递什么类型的数据
  • 我要传递字符串变量

标签: java android android-activity bluetooth


【解决方案1】:

好的,这很好...将字符串从活动 1 传递到活动 2,您需要

一种传递和检索它的方法,Intents

public void setUp (String address) {
/* start an intent to pass the string data*/
Intent intent = new Intent(GridViewActivity.this,       MovieDetailActivity.class);

/* use the intent object to pass string to another activity using putExtra method */

intent.putExtra("your string");
 start intent(intent);
}

然后在您的接收活动中使用 getStringExtra

final String original_title =     getIntent().getStringExtra("your string");

那么您可以使用 Intent 和 PutExra 以及 getIntent 和 getStringExtra 方法从活动中传递此变量

您可以在 Google 上搜索更多信息。使用意图从活动中传递数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 2014-02-08
    • 2015-10-25
    • 2014-11-16
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多