簡體   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