繁体   English   中英

跑步活动之间的交流?

[英]Communication between running activities?

我是android新手,目前正在开发quest / tresurehunt应用程序。 它是一个原型,将在现场进行评估,因此,我希望实现某种作弊功能,以在应用程序在测试期间崩溃时跳过检查点。

我的应用程序的工作方式是,当您选择一个任务时,将加载一个活动以处理所有检查点和用户位置(ActivityAdapter.java)。 此活动将打开不同的导航工具活动,并根据下一个使用意图的检查点将信息传递给它们。 我在应用程序中实施了长按事件,我想激活跳过/作弊功能。 我的问题是我不知道该怎么做。

ActivityAdapter.java的位置更改事件:

public void onLocationChanged(Location location) {

    location.distanceBetween(location.getLatitude(), location.getLongitude(), lat, lng, dist);
    if (dist[0]<= 10) {
        if (cid == checkpoints.size()) {
             Intent intent = new Intent(ActivityAdapter.this, SuccessActivity.class);
             intent.putExtra("title", checkpoints.get(cid).get("title"));
             startActivity(intent);
        } else {
             new loadAndStartQuest().execute();
        }   
    }
}

loadAndStartQuest()只是找到下一个检查点并启动正确的活动(navigationtool)。 我尝试创建ActivityAdapter的对象并设置一个变量,并将其添加到无效的if语句中。 我猜这是因为它将创建活动的另一个实例,而不影响当前/正在运行的实例。 那么您如何在两个正在进行的活动之间进行交流?

要将数据从Activity1发送到正在运行的Activity2,您必须执行以下步骤:

  1. 在Manifest.xml中,为Activity2设置启动模式“ singleTask”

    <activity android:name="Activity2" android:launchMode="singleTask">

  2. 放入额外内容并从Activity1启动Activity2(如果Activity2之前已启动,则意图将发送到现有实例)。

     Intent intent = new Intent(getContext(), Activity2.class); intent.putExtra("CHECK_POINT", checkPointData); startActivity(intent) 
  3. 在Activity2中重写onNewIntent()方法

     protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); onNewCheckPoint(); } private void onNewCheckPoint(){ Intent intent = getIntent(); Bundle extras = intent.getExtras(); //in this moment, you can process data, like you want. } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM