1. 程式人生 > >多Activity之間相互呼叫方法總結

多Activity之間相互呼叫方法總結

本文對多個Activity之間的相互呼叫做個個人總結,對於Activity之間的相互呼叫,常用的幾種如下:

1,Activity A轉到ActivityB

假設Activity 物件A,B

建立一個Intent物件Intentintent = new Intent(A.this, B.class);

傳遞資料:intent.putExtra("key",value);

這個地方可以根據你需要傳遞的資料型別,選擇不同的介面。

呼叫:startActivity(intent);

2,ActivityA 轉到B,監聽B的返回值,即有返回值的呼叫

在A中:

建立Intent物件Intentintent = new Intent(A.this, B.class);

privatestatic final int SECONDACTIVITY_MSG_ID = 100;

privateString key = "Third";

呼叫:

Intent intent= new Intent(A.this,B.class);
startActivityForResult(intent,SECONDACTIVITY_MSG_ID );
重寫A中的onActivityResult(intrequestCode,int resultCode,Intent data)
@Override
         protected voidonActivityResult(int requestCode, int resultCode, Intent data) {
                   if (requestCode== SECONDACTIVITY_MSG_ID ) {
                   String path =data.getStringExtra(key );//獲取資料
                   //回撥傳值成功
                  }
}

在B中:

新增資料:

String data= "xxxxx";
Intent intent =this.getIntent().putExtra("key", "123456");

setResult(100,intent);//此處使用SECONDACTIVITY_MSG_ID,故100

3,呼叫外部APP中的Activity

有兩個ActivityA,B,分別屬於不同的APP,在A中呼叫B:

需要在B的Manifest檔案中定義Action和Uri頭,比如加入:

如果無引數傳遞:

 <intent-filter>
     <action android:name="com.mytest"/>
</intent-filter>

如果有引數傳遞:

<activity
            android:name="com.example.XXX.XXActivity" android:exported="true"
            android:label="@string/app_name" 
            android:screenOrientation="portrait">
                        <intent-filter>
                    <action android:name="com.mytest" />
                <data android:scheme="mypath"/>
                <category android:name="android.intent.category.DEFAULT" />
                
            </intent-filter>
</activity>

在A中呼叫分別如下:

無引數傳遞:

Stringaction = "com.mytest";
Intent intent = new Intent(action);
startActivity(intent);

有引數傳遞:

Stringaction = "com.mytest";
Uri uri = Uri.parse("mypath:"+"//123456");
Intent intent = new Intent(action,uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);

注意,被呼叫的Activity不要是APP的LUNCHER的Activity,否則執行不起來!

上述就是我們常用的Activity呼叫總結!


相關推薦

Activity之間相互呼叫方法總結

本文對多個Activity之間的相互呼叫做個個人總結,對於Activity之間的相互呼叫,常用的幾種如下: 1,Activity A轉到ActivityB 假設Activity 物件A,B 建立一個Intent物件Intentintent = new Intent(A.t

3. 呼叫另一個Activity,並兩個Activity之間相互傳遞資料

一,在一個Activity中呼叫另一個Activity 利用 android.content.Intent 物件實現從一個Activity跳轉到另一個Activity 例如:從FirstActivity跳轉到SecondActivity /*           關鍵程式碼

C#-MDI-窗口通信方法總結

什麽 sys ... 界面 rac 數值 別人 thread tail 總結C#中窗體間傳遞數據的幾種方法 (由別人的方法整理) 轉自:http://blog.csdn.net/daisy423xu/article/details/1579854 在編寫C#windo

egret 不同類之間相互呼叫以及事件偵聽

Main類 class Main extends eui.Component { public constructor() { super(); } public childrenCreated() { super.c

iframe頁面相互呼叫方法

本文首發我的簡書 最近的專案中嵌入了外部的iframe,想跨域呼叫自己頁面的方法,點選iframe中的返回按鈕,返回到父級的上一級頁面,因為是自己的專案是單頁應用,所以無法直接使用window.location.href,這個需求讓我頭疼了兩天(包括衍生出來的問題),解

android開發之fragment與activity之間相互跳轉

   Fragment的產生與介紹 Android執行在各種各樣的裝置中,有小螢幕的手機,超大屏的平板甚至電視。針對螢幕尺寸的差距,很多情況下,都是先針對手機開發一套App,然後拷貝一份,修改佈局以適應平板神馬超級大屏的。難道無法做到一個App可以同時適應手機和平板麼

eth 以太坊合約之間相互呼叫

準備: remix 說明: demo1.sol 和 demo02.sol 使用相同賬戶進行部署 demo1.sol pragma solidity ^0.4.25; /** * 有所有人的合約 * 所有許可權管理都在這裡定義 * event Owners

python模組呼叫方法總結

python有三種匯入模組的方法 感謝原作者Allenw 原文地址 其一, import modname: 模組是指一個可以互動使用,或者從另一Python 程式訪問的程式碼段。只要匯入了一個模組,就可以引用它的任何公共的函式、類或屬性。模組可以通過這種

Unity3D中js與C#之間相互呼叫的解決辦法

轉載自:http://www.manew.com/3102.html Unity3D中一些指令碼的方法只能用在JS中,在C#中是無效的,而C#可以與伺服器端通訊,JS本身卻不行。而且,如果需要用到js呼叫c#的問題,js會比c#先編譯,所以在mac裡編譯ios的時候會出錯,

C++ 與 c# 模組 之間相互呼叫

using namespace System; using namespace System::Reflection; namespace adapter {     public ref class wrapper     {     private:         static Assembly^ dl

iOS巔峰之兩個App之間相互呼叫並攜帶引數傳值

1、新建兩個專案:AppOne,AppTwo; 2、分別在其屬性列表中新增如下: AppOne:   AppTwo: AppOne的 viewController.m 中新增程式碼: - (void) touchesBegan:(NSSet *)

docker容器通過宿主機ip中轉實現容器之間相互呼叫

一般每個容器,都會對映一個埠到宿主機中,方便在宿主機上訪問,例如ngnix,mysql,redis等等。 但是我們有一種常見的場景,就是a容器,需要通過宿主機的埠對映,呼叫b容器的服務,這裡如果在a容器內部配置localhost/127.0.0.1/0.0.0

有關同一解決方案下個工程相互呼叫的問題

最新修改時間:20160515 以前自己在寫C#的時候就經常需要用到這方面的知識,但當時感覺挺容易處理的,也就並沒有留意。現在開始接觸C++,剛開始還是有很多不熟悉的。這裡我不是想講lib和d

MVC中部分檢視呼叫方法總結

<body> 這種方式 不走  controller     @Html.Partial("../Shared/Error");  這種方式    走 controller  @Html.Action("Dismode","Shared")  <

php中頁面之間傳遞變數方法總結

在實際的網站開發當中,我們經常會遇到在一個頁面定義的變數,在另外一個頁面也要使用,這就需要我們在頁面之間傳遞變數.下面介紹一些常用的方法: 一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變數用表單的方式再次傳送,比如在使用者登陸後,

Android新增Activity,並實現Activity之間的切換

開啟 AndroidManifest.xml 找到節點 application 並增加 activity <activity android:name="TestActivity" android:theme="@style/AppTheme">

應用之間相互呼叫,應用相互跳轉,應用間傳遞引數

這裡需要寫兩個專案. 應用一:  設定一個按鈕,執行跳轉應用二的操作 應用二: 設定一個按鈕,執行跳轉應用一的操作 兩個應用都需要設定     TARGETS --> info--->URL Types 應用一 :URL Schemes項填寫 app1 應用

Activity和Fragment之間相互傳值和呼叫方法

1。Activity—>Fragment 用Bundle傳值, ... BlankFragment fragment = new BlankFragment(); Bundle args = new Bundle()

Android實現activity之間的傳值方法總結

今天寫這篇文章主要是因為自己這段時間在學習安卓的時候實現不同activity之間傳值問題進行一個小小的總結。 【問題】 舉個簡單例子,比如我要在做一個小專案要獲取使用者的個人資訊,在登入的時候我們需要儲存使用者的資訊,或者我們需要檢視個人的資訊,那實現這個小功能怎麼辦呢。我想你們肯恩會跟

Activity詳解 Intent顯式跳轉和隱式跳轉, 及Activity之間傳值 總結

//web瀏覽器 Uri uri= Uri.parse("http://www.baidu.com:8080/image/a.jpg"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(