導航:首頁 > 操作系統 > androidactivity函數

androidactivity函數

發布時間:2022-05-30 11:58:53

㈠ 如何在android開發中activity之間數據傳遞

用intent在activity之間傳遞數據,需要注意三個方法:
1.startActivityForResult(Intent intent, int requestCode)
2.setResult(int resultCode, Intent data)
3.onActivityResult(int requestCode, int resultCode, Intent data)
需要注意的是:
1.函數1在Activity_A裡面調用,然後啟動Activity_B(由intent參數決定啟動哪個activity);然後Activity_B執行完了之後,在finish()函數裡面調用函數2;此時返回Activity_A;最後在Activity_A裡面系統自動調用已經重載的函數3,Activity_A可以從該函數的第三個參數data裡面獲得想要的數據。
2.函數1有兩個參數,第二個參數確定請求碼;
3.函數3有三個參數:第一個參數請求碼,與函數1的第二個參數意義相同,用於確定是否是從Activity_B里獲得的返回值;第二個參數是結果碼,用於確定返回的結果是否可用;第三個參數是intent變數,用於傳遞數據。

㈡ android的一個activity的生命周期中有多少函數

首先看看Activity的生命周期圖
當第一次調用一個Activity就會執行onCreate方法

當Activity處於可見狀態的時候就會調用onStart方法

當Activity可以得到用戶焦點的時候就會調用onRes
當Activity沒有被銷毀的時候重新調用這個Activity就會調用onRestart方法

當Activity被遮擋住的時候就會調用onPause方法

當Activity處於不可見狀態的時候就會調用onStop方法

當Activity被銷毀時會調用onDestory方法

㈢ Android開發中CCLayer中怎麼調用activity中的函數

……android中有CClayout嗎?
是cocos2dx中有cclayout吧……
通常覺得這樣做沒有必要,但如果必須的話或許可以這樣解決……
用ndk寫一個介面……
CClayout保留一個方法需要傳入這個介面……
android的activity實現這個介面,並將自身傳入CClayout……
看起來像回調的樣子……
沒驗證過,考慮到c語言和java語言的介面可能不同,可能不能實現……
只提供想法……

㈣ 安卓中Activity類怎麼沒有構造函數

在Android中每個界面都是一個Activity,切換界面操作其實是多個不同Activity之間的實例化操作。在Android中Activity的啟動模式決定了Activity的啟動運行方式。
Android總Activity的啟動模式分為四種:

Activity啟動模式設置:

<activity android:name=".MainActivity" android:launchMode="standard" />

Activity的四種啟動模式:

1. standard

模式啟動模式,每次激活Activity時都會創建Activity,並放入任務棧中。

2. singleTop

如果在任務的棧頂正好存在該Activity的實例, 就重用該實例,否者就會創建新的實例並放入棧頂(即使棧中已經存在該Activity實例,只要不在棧頂,都會創建實例)。

3. singleTask

如果在棧中已經有該Activity的實例,就重用該實例(會調用實例的onNewIntent())。重用時,會讓該實例回到棧頂,因此在它上面的實例將會被移除棧。如果棧中不存在該實例,將會創建新的實例放入棧中。

4. singleInstance

在一個新棧中創建該Activity實例,並讓多個應用共享改棧中的該Activity實例。一旦改模式的Activity的實例存在於某個棧中,任何應用再激活改Activity時都會重用該棧中的實例,其效果相當於多個應用程序共享一個應用,不管誰激活該Activity都會進入同一個應用中。

其中standard是系統默認的啟動模式。

㈤ android開發 怎麼在一個activity中調用另外一個activity中的函數

你是用java開發的嗎,如果是的話,那跟java一樣的啊,一般的方法,需要實例化對象以後通過對象調用,如果是靜態方法,那麼直接通過類來調用咯。

㈥ 什麼是Activity,詳細介紹Activity

Activity
首先,Activity是Android系統中的四大組件之一,可以用於顯示View。Activity是一個與用記交互的系統模塊,幾乎所有的Activity都是和用戶進行交互的,但是如果這樣就能說Activity主要是用來顯示View就不太正確了。

在深入了解Activity之前,我們先要知道一下MVC設計模式,在JAVAEE 中MVC設計模式已經很經典了,而且分的也比較清晰了,但是在Android中,好多人對MVC在Android開發中的應用不是很清楚,下面我就先來介紹一下MVC在Android開發中的應用:

M(Model 模型):Model是應用程序的主體部分,所有的業務邏輯都應該寫在這里,在Android中Model層與JavaEE中的變化不大,如:對資料庫的操作,對網路等的操作都放在該層(但不是說它們都放在同一個包中,可以分開放,但它們統稱為Model層)。
V(View 視圖):是應用程序中負責生成用戶界面的部分,也是在整個MVC架構中用戶唯一可以看到的一層,接收用戶輸入,顯示處理結果;在Android應用中一般採用XML文件里德界面的描述,使用的時候可以非常方便的引入,當然也可以使用JavaScript+Html等方式作為View。
C(Controller控制層)android的控制層的重任就要落在眾多的activity的肩上了,所以在這里就要建議大家不要在activity中寫太多的代碼,盡量能過activity交割Model業務邏輯層處理。

好了,在介紹過Android應用開發中的MVC架構後,我們就可以很明確的知道,在Android中Activity主要是用來做控制的,它可以選擇要顯示的View,也可以從View中獲取數據然後把數據傳給Model層進行處理,最後再來顯示出處理結果。

介紹過Activity的主要作用後,那麼我們就要詳細說一下Activity了。
Activity生命周期圖

Activity 的生命周期是被以下的函數控制的。
public class Activity extends ApplicationContext {
protected void onCreate(Bundle icicle);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onFreeze(Bundle outIcicle);
protected void onPause();
protected void onStop();
protected void onDestroy();
}

onCreate(Bundle) 函數是你進行初始化的地方,這個也是執行
setContentView(View)函數的地方,setContentView(View)函數可以傳入一個由XML
編制的UI界面,可以使UI和具體實現完全分離。
onPause()函數是處理用戶離開當前 Activity 的地方。更重要的是,任何在當前
Activity中的任何改變都要在這個函數中提交。

Activity有四種狀態:
活動狀態,當Activity處於Stack(棧)頂時,就是手機當前的現實屏幕,這是 Activity就
處於activity或者運行狀態。
運行但是失去焦點,當Activity還處於運行狀態時,但是屏幕是有另外一個Activity
處於文檔處於焦點狀態,當前的Activity就處於pause。
停止,當Activity被另一個Activity完全覆蓋的時候,就被停止了,其實就是雖然在
運行,但是用戶卻看不見。
結束,當Activity處於pause或者stop時,系統可以結束 Activity,回收資源,這
是Activity就是處於結束狀態了。
處於結束狀態的是Activity,如果要使用戶可見,只要重啟才可以。

Activity的響應時間
當前Activity所在的線程為主線程,它的響應時間為5秒,如果在當前運行的Activity中進行耗時的操作且響應時間起過5秒,那麼程序就會報ANR錯誤。所以,這也是不建議在Activity中寫太多復雜代碼的原因之一。
當然,有些代碼只能寫在Activity中,不然就運行不了(它們不是生命周期方法),比如你想要獲得android系統或者硬體一的些信息,就必須在Activity中寫出來,如果單獨寫一個工具類獲得不了。

㈦ android. 當啟動一個activity並且完後需要返回到啟動他的activity來執行的回調函數是

1、首先在打開的xml界面中,定義一個按鈕,如下圖所示。

㈧ Android中如何在一個Activity中調用其他Activity中的函數

其實 這個不算什麼問題吧··
Android中的activity 只是一個普通的java類,你在普通的java類中調另外一個java類的函數 這不是大家都知道的事情嗎? 用new呀 或者做靜態函數呀 或者用反射機制呀 都是辦法。
如果碰到你說的上述情況了 就把那個要調用的函數封裝出來吧 這個才是王道。

㈨ android開發 在一個activity中調用另外一個activity中的函數

給它一個靜態的方法,一邊獲取activity的實例,然後在另一個activity中獲取,這樣就可以了
public class Activity1 {
private Activity1 mActivity1 = null;
public void onCreate(Bundle savedInstanceState) {
mActivity1 = this;
}
public static Activity1 getInstance () {
if (mActivity1 != null) {
return mActivity1;
}
return null;
}
}

public calss Activity2 {

/**在這里就可以用上個Activity的方法了**/

}

㈩ 怎樣在android的service中調用Activity中的getWindow函數

在Android中,Activity主要負責前台頁面的展示,Service主要負責需要長期運行的任務,所以在我們實際開發中,就會常常遇到Activity與Service之間的通信,我們一般在Activity中啟動後台Service,通過Intent來啟動,Intent中我們可以傳遞數據給Service,而當我們Service執行某些操作之後想要更新UI線程,我們應該怎麼做呢?接下來我就介紹兩種方式來實現Service與Activity之間的通信問題

通過Binder對象

當Activity通過調用bindService(Intent service, ServiceConnection conn,int flags),我們可以得到一個Service的一個對象實例,然後我們就可以訪問Service中的方法,我們還是通過一個例子來理解一下吧,一個模擬下載的小例子,帶大家理解一下通過Binder通信的方式
首先我們新建一個工程Communication,然後新建一個Service類

[java] view plain
<span style="font-family:System;">package com.example.communication;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;

public class MsgService extends Service {
/**
* 進度條的最大值
*/
public static final int MAX_PROGRESS = 100;
/**
* 進度條的進度值
*/
private int progress = 0;

/**
* 增加get()方法,供Activity調用
* @return 下載進度
*/
public int getProgress() {
return progress;
}

/**
* 模擬下載任務,每秒鍾更新一次
*/
public void startDownLoad(){
new Thread(new Runnable() {

@Override
public void run() {
while(progress < MAX_PROGRESS){
progress += 5;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

}
}
}).start();
}

/**
* 返回一個Binder對象
*/
@Override
public IBinder onBind(Intent intent) {
return new MsgBinder();
}

public class MsgBinder extends Binder{
/**
* 獲取當前Service的實例
* @return
*/
public MsgService getService(){
return MsgService.this;
}
}

}</span>
上面的代碼比較簡單,注釋也比較詳細,最基本的Service的應用了,相信你看得懂的,我們調用startDownLoad()方法來模擬下載任務,然後每秒更新一次進度,但這是在後台進行中,我們是看不到的,所以有時候我們需要他能在前台顯示下載的進度問題,所以我們接下來就用到Activity了

[java] view plain
Intent intent = new Intent("com.example.communication.MSG_ACTION");
bindService(intent, conn, Context.BIND_AUTO_CREATE);

通過上面的代碼我們就在Activity綁定了一個Service,上面需要一個ServiceConnection對象,它是一個介面,我們這里使用了匿名內部類

[java] view plain
<span style="font-family:System;"> ServiceConnection conn = new ServiceConnection() {

@Override
public void onServiceDisconnected(ComponentName name) {

}

@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//返回一個MsgService對象
msgService = ((MsgService.MsgBinder)service).getService();

}
};</span>
在onServiceConnected(ComponentName name, IBinder service) 回調方法中,返回了一個MsgService中的Binder對象,我們可以通過getService()方法來得到一個MsgService對象,然後可以調用MsgService中的一些方法,Activity的代碼如下

[java] view plain
<span style="font-family:System;">package com.example.communication;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity extends Activity {
private MsgService msgService;
private int progress = 0;
private ProgressBar mProgressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//綁定Service
Intent intent = new Intent("com.example.communication.MSG_ACTION");
bindService(intent, conn, Context.BIND_AUTO_CREATE);

mProgressBar = (ProgressBar) findViewById(R.id.progressBar1);
Button mButton = (Button) findViewById(R.id.button1);
mButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
//開始下載
msgService.startDownLoad();
//監聽進度
listenProgress();
}
});

}

/**
* 監聽進度,每秒鍾獲取調用MsgService的getProgress()方法來獲取進度,更新UI
*/
public void listenProgress(){
new Thread(new Runnable() {

@Override
public void run() {
while(progress < MsgService.MAX_PROGRESS){
progress = msgService.getProgress();
mProgressBar.setProgress(progress);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
}).start();
}

ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {

}

@Override
public void onServiceConnected(ComponentName name, IBinder service) {
//返回一個MsgService對象
msgService = ((MsgService.MsgBinder)service).getService();

}
};

@Override
protected void onDestroy() {
unbindService(conn);
super.onDestroy();
}

}</span><span style="font-family: simsun;">
</span>
其實上面的代碼我還是有點疑問,就是監聽進度變化的那個方法我是直接在線程中更新UI的,不是說不能在其他線程更新UI操作嗎,可能是ProgressBar比較特殊吧,我也沒去研究它的源碼,知道的朋友可以告訴我一聲,謝謝!

上面的代碼就完成了在Service更新UI的操作,可是你發現了沒有,我們每次都要主動調用getProgress()來獲取進度值,然後隔一秒在調用一次getProgress()方法,你會不會覺得很被動呢?可不可以有一種方法當Service中進度發生變化主動通知Activity,答案是肯定的,我們可以利用回調介面實現Service的主動通知,不理解回調方法的可以看看http://blog.csdn.net/xiaanming/article/details/8703708
新建一個回調介面

[java] view plain
public interface OnProgressListener {
void onProgress(int progress);
}
MsgService的代碼有一些小小的改變,為了方便大家看懂,我還是將所有代碼貼出來

閱讀全文

與androidactivity函數相關的資料

熱點內容
自己購買雲主伺服器推薦 瀏覽:419
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:189
pdf劈開合並 瀏覽:27
不能修改的pdf 瀏覽:751
同城公眾源碼 瀏覽:488
一個伺服器2個埠怎麼映射 瀏覽:297
java字元串ascii碼 瀏覽:78
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332
android關聯表 瀏覽:945
安卓導航無聲音怎麼維修 瀏覽:332
app怎麼裝視頻 瀏覽:430
安卓系統下的軟體怎麼移到桌面 瀏覽:96
windows拷貝到linux 瀏覽:772
mdr軟體解壓和別人不一樣 瀏覽:904
單片機串列通信有什麼好處 瀏覽:340
游戲開發程序員書籍 瀏覽:860
pdf中圖片修改 瀏覽:288
匯編編譯後 瀏覽:491