请教如何配置每个activity一个进程

作者&投稿:钭供 (若有异议请与网页底部的电邮联系)
Android中怎么从一个进程中启动另一个进程中的activity~

package com.activity;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ActivitySecondActivity extends Activity {
/** Called when the activity is first created. */
private Button button=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button=(Button) findViewById(R.id.myButton);
button.setOnClickListener(new buttonlistener());
}
class buttonlistener implements OnClickListener{

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/**Intent inten=new Intent();
inten.putExtra("TestIntenDate", "这是从上一个activity中传入的参数");
inten.setClass(ActivitySecondActivity.this, ActivityOther.class);
ActivitySecondActivity.this.startActivity(inten);
**/
Uri uri=Uri.parse("smsto://0800000123");
Intent intent1=new Intent(Intent.ACTION_SENDTO,uri);
intent1.putExtra("sms_body", "哈哈,我可以发短信了");
startActivity(intent1);
}

}
}

这个是点击按钮打开发短信的页面的示例,也许对你有用

默认情况下,同一个应用程序中的所有组件运行在同一个进程中,而且绝大多数的应用程序也都是这样的。但是,如果我们想要控制让某个特定的组件属于某个进程,我们可以在manifest文件中进行配置。

  在每种组件元素(activity、service、receiver、provider)的manifest条目中,都支持一个“android:process”的属性,通过这个属性,我们可以指定某个组件运行的进程。我们可以通过设置这个属性,让每个组件运行在它自己的进程中,也可以只让某些组件共享一个进程。我们要可以通过设置“android:process”属性,让不同应用程序中的组件运行在相同的进程中,这些应用程序共享相同的Linux用户ID,拥有相同的证书。

  元素也有一个“android:process”属性,可以设置一个应用于全部组件的默认值。

  当可用内存数量低,而一些与用户即时交互的进程又需要内存时,Android随时可能会终止某个进程。运行在被终止的进程中的组件会因此被销毁,但是,当再次需要这些组件工作时,就会再启动一个进程。

  在决定要终止哪个进程时,Android系统会权衡它们对于用户的重要性。例如,相较于运行可见activities的进程,终止一个运行不可见activities的进程会更加合理。是否终止一个进程,依赖于运行在这个进程中的组件的状态。

  如果不能将两个activity放入同一个application中的话,可以通过在各自的manifest中设置以下属性,让这两个activity强制运行在同一个进程中,从而可以充分利用进程内共享的资源,减少内存占用:

  Java代码:

  1.(1)设置相同的User Id:

  2.<manifest android:sharedUserId="aaa.bbb"

  3.(2)被调用的activity设置以下属性:

  4.<activity android:multiprocess="true"

  5.或者

  6.<activity android:process="com.cienet.test"

  对于3D OpenGL程序,修改以上属性后,被调用的activity的内存占用会明显减少,比如:30MB -> 2MB。

  可以做如下测试如何共享一个进程

  Java代码:

  1.加入android:sharedUserId="aaa.bbb"没有

  2.android:process="com.cienet.test"

  3.07-12 15:42:34.781: ERROR/Dean(7615): Binder.getCallingPid()7615

  4.07-12 15:42:34.785: ERROR/Dean(7615): runningappprocessinfo.pid:7615runningappprocessinfo.processNamecom.cienet.testa

  5.07-12 15:42:34.785: ERROR/Dean(7615): pkgname:7615:com.cienet.testa

  6.

  7.

  8.07-12 15:42:24.722: ERROR/Dean(7602): Binder.getCallingPid()7602

  9.07-12 15:42:24.726: ERROR/Dean(7602): runningappprocessinfo.pid:7602runningappprocessinfo.processNamecom.cienet.testb

  10.07-12 15:42:24.726: ERROR/Dean(7602): pkgname:7602:com.cienet.testb

  11.

  12.加入android:process="com.cienet.test"到B

  13.

  14.07-12 15:46:41.933: ERROR/Dean(7738): Binder.getCallingPid()7738

  15.07-12 15:46:41.937: ERROR/Dean(7738): runningappprocessinfo.pid:7738runningappprocessinfo.processNamecom.cienet.test

  16.07-12 15:46:41.937: ERROR/Dean(7738): pkgname:7738:com.cienet.testb

  17.

  18.07-12 15:47:13.246: ERROR/Dean(7761): Binder.getCallingPid()7761

  19.07-12 15:47:13.246: ERROR/Dean(7761): runningappprocessinfo.pid:7761runningappprocessinfo.processNamecom.cienet.testa

  20.07-12 15:47:13.250: ERROR/Dean(7761): pkgname:7761:com.cienet.testa

  21.

  22.同时加入android:process="com.cienet.test"到A

  23.

  24.07-12 15:50:24.988: ERROR/Dean(7878): getApplicationInfo:publicSourceDir/data/app/com.cienet.testa-1.apk

  25.07-12 15:50:24.988: ERROR/Dean(7878): getApplicationInfo:descriptionRes0

  26.07-12 15:50:24.988: ERROR/Dean(7878): Binder.getCallingPid()7878

  27.07-12 15:50:24.992: ERROR/Dean(7878): runningappprocessinfo.pid:7878runningappprocessinfo.processNamecom.cienet.test

  28.07-12 15:50:24.992: ERROR/Dean(7878): pkgname:7878:com.cienet.testa

  29.

  30.

  31.07-12 15:50:46.964: ERROR/Dean(7878): getApplicationInfo:publicSourceDir/data/app/com.cienet.testb-1.apk

  32.07-12 15:50:46.964: ERROR/Dean(7878): getApplicationInfo:descriptionRes0

  33.07-12 15:50:46.964: ERROR/Dean(7878): Binder.getCallingPid()7878

  34.07-12 15:50:46.968: ERROR/Dean(7878): runningappprocessinfo.pid:7878runningappprocessinfo.processNamecom.cienet.test

  35.07-12 15:50:46.972: ERROR/Dean(7878): pkgname:7878:com.cienet.testa

  36.

  37.

  38.去掉android:sharedUserId="aaa.bbb"

  39.07-12 15:52:29.574: ERROR/Dean(7967): getApplicationInfo:publicSourceDir/data/app/com.cienet.testb-2.apk

  40.07-12 15:52:29.578: ERROR/Dean(7967): getApplicationInfo:descriptionRes0

  41.07-12 15:52:29.578: ERROR/Dean(7967): Binder.getCallingPid()7967

  42.07-12 15:52:29.578: ERROR/Dean(7967): runningappprocessinfo.pid:7967runningappprocessinfo.processNamecom.cienet.test

  43.07-12 15:52:29.578: ERROR/Dean(7967): pkgname:7967:com.cienet.testb

  44.

  45.

  46.07-12 15:53:06.730: ERROR/Dean(7990): getApplicationInfo:publicSourceDir/data/app/com.cienet.testa-2.apk

  47.07-12 15:53:06.730: ERROR/Dean(7990): getApplicationInfo:descriptionRes0

  48.07-12 15:53:06.730: ERROR/Dean(7990): Binder.getCallingPid()7990

  49.07-12 15:53:06.734: ERROR/Dean(7990): runningappprocessinfo.pid:7990runningappprocessinfo.processNamecom.cienet.test

  50.07-12 15:53:06.734: ERROR/Dean(7990): pkgname:7990:com.cienet.testa

  如上证明那个APK共享进程要两个条件(1)设置相同的User Id:

  (2)被调用的activity设置以下属性:

  <activity android:multiprocess="true"

  或者

  <activity android:process="com.cienet.test"

封装了一个小小的方法,公供参考:/***为ActivityGroup的一个ViewGroup设置动态的ActivityView对象**@param上下文*@paramLocalActivityManager对象*@paramActivityGroup想要包容Activity*View对象的容器(ViewGroup)*@param通过Intent的意图打算启用哪个Activity类*@param开始Activity*设置的Id*/publicstaticvoidgetView(Contextcontext,LocalActivityManagerlam,LinearLayoutlayout_load,Classcls,StringId){Intentintent=newIntent(context,cls);intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);Windoww=lam.startActivity(Id,intent);Viewv=w.getDecorView();layout_load.removeAllViews();layout_load.setPadding(5,5,5,5);layout_load.addView(v,newLinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT));}然后在ActivityGroup页面如此使用:privateLocalActivityManagermanager;//声明一个LocalActivityManager对象manager=getLocalActivityManager();//得到这个对象界面初始化时:/***初始化*/voidinit(){comonHelp.getView(this,manager,main,preferenceSet.class,"swc");}有了设置的ID了,那就可以得到当前的Activity了。下面给出我用过的一段代码,以作参考:SharedPreferences.Editoreditor=getSharedPreferences("com.swc.yaomei_preferences",Activity.MODE_PRIVATE).edit();LocalActivityManagermanager=getLocalActivityManager();PreferenceActivityacitivty=(PreferenceActivity)manager.getActivity("swc");for(inti=0;i<9;i++){editor.putString("KEY_"+i,"N/A");PreferenceScreenExtext=(PreferenceScreenExt)acitivty.findPreference("KEY_"+i);RelativeLayoutlayout=(RelativeLayout)ext.getLayout();TextViewsummary=(TextView)layout.getChildAt(1);summary.setText("N/A");}editor.commit();System.gc();上面的PreferenceActivity是得到一个PreferenceAcitity因为是要修改位于ActivityGroup里面对应的Preference所以这里要获得一个PreferenceAcitity,如果是一个普通的Activity直接得到一个Activity对象就行,之后的操作都是一致的。


华硕路由器rtac1200具体设置方法
华硕rtac1200路由器WIFI设置的方法有以下三种:方法一:初次设置路由器,在引导界面可以配置WIFI帐号和密码。方法二:进入路由器设置界面---无线网络,配置WIFI。方法三:使用华硕路由器APP进行设置,ASUS Router APP可在APP Store、google play或其他应用市场搜索“ASUS Router ”下载。通过以上方式设置完成...

想扩展无线,组建AC,AP请教一下,谁能教一下怎么弄
AC+AP模式。设备需要用到的是AC认证网关(有路由功能,AC管理功能),再是POE交换机,最后是无线AP(瘦AP)连接图:都是很简单的。需要知道现场环境的大小,最多上网的人数,还有是否需要认证上网的功能等等

华硕路由器ac68u设置教程
1、准备一台路由器、一台笔记本、两根网线 2、路由器WAN口连接到光猫WAN口上 若宽带入户则不会配备光猫,路由器WAN口直接连家里墙上的LAN口 3、路由器LAN口连接电脑 4、打开浏览器,输入以下网址,打开路由器设置界面 5、创建新的网络 6、根据个人需求设置即可 ...

B-LINK教你设置BL-AC1200D无线路由器双频5g千兆
B-LINK教你怎么设置BL-AC1200D无线路由器穿墙王11AC双频5g千兆(电脑设置)先连接好线路,相信设置过路由器的都会,在此不再赘述。在电脑上打开浏览器输入IP地址:192.168.199.1按回车键进入路由器后台。输入默认管理密码admin点登陆进入到设置主界面。在主界面上可以设置很多东西,先来设置外网。点击它...

腾达(Tenda)AC9路由器怎么设置图解教程
如果是需要拨号的宽带猫接无线路由器,按照下面的方法设置:1、无线路由器插上电,先不要接猫,电脑连接无线路由器任一LAN口 ;2、 浏览器地址栏输入路由器IP地址(路由器背后标签上有的),输入登录用户名和密码进入设置页面;3、按照PPPOE(ADSL虚拟拨号)方式设置,输入上网账号和密码;4、设置一下...

H3C无线AP本地转发配置教程
AC配置 sys System View: return to User View with Ctrl+Z.[AC-WX3010E-WLAN]dis cu version 5.20, Release 3509P44 sysname AC-WX3010E-WLAN domain default enable system telnet server enable lldp enable lldp compliance cdp port-security enable oap management-ip 192.168.0.101 slot 0...

华硕ac5300路由器谁会设置求助大神
已经可以顺利用4G网络访问你的华硕AC68U路由器了!也可以远程登陆AC68U的后台页面管理,打开浏览器按地址输入以下格式 https:\/\/主机名称.asuscomm.com:端口 如https:\/\/A7364EE040D4B9B75ABDA35F8789960D2.asuscomm.com:8443 注意,家里的公网IP是动态的(固定的公网IP好几千元一年,电信不会给的)...

AC与无线AP,网络连接与实现
负责给AP发送配置,并远程管理AP,监控AP的状态的;AP和AC 之间都是通过有线进行传输的,每个AP都会连接到最近的一个接入交换机上面,然后接入交换机通过光纤连接到核心交换机上,AC一般是连接在核心交换机上面的,和AP的通讯是通过二层或者三层交换进行的 光纤一般会在地下,所以你很少看到 ...

小米wifi6路由器快速设置教程小米wifi6路由器配置与使用技巧
如果要问什么品牌的路由器质量好?杨哥肯定推荐小米路由器,小米路由器是性价比很高的路由器,今天我们用一款Redmi路由器AC2100演示如何登录http:\/\/miwifi.com设置小米路由器上网。小米路由器Redmi路由器AC2100 1.手机打开wlan搜索小米无线路由器wifi,然后连接小米路由器的WiFi(恢复出厂设置后的小米路由器...

怎样把网速变快
在有限的硬件条件下,可以参考以下方法:步骤1. Win+R组合键后输入gpedit.msc进入组策略编辑器,依次进入“计算机配置-Windows设置”后,再右侧找到“基于策略的Qos”的这个选项。步骤2. 在“基于策略的Qos”上点击鼠标右键,选择“高级QoS设置”,在入站TCP流量选项卡中,勾选”制定入站TCP吞吐量级别“...

叶城县13872999883: android里面有多个activity如何设置一个为主界面上的activity? -
赤亭止血: 答:首先打开AndroidManifest.xml配置文件,在AndroidManifest.xml里修改 找到activity标签,添加如下内容<activity android:name=".CdBusSearchActivity" android:label="@string/app_name" ><intent-filter><action android:name="android...

叶城县13872999883: 如何设置图标,标题栏为TabLayout每个Activity -
赤亭止血: 有时候在一些子页面或者内容页面,不需要显示ActionBar的标题栏图标.可用如下方式进行设置. 首先获取到ActionBar对象 ActionBar actionBar=getActionBar(); 使用android:logo属性.不像方方正正的icon,logo的图像不会有任何宽度限...

叶城县13872999883: android怎样配置所有的activity
赤亭止血: 你把配置的熟习放在application中去

叶城县13872999883: android如何调用第三方app各个activity -
赤亭止血: 禁止屏幕随手机旋转变化 有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化: 在androidmanifest.xml的每一个需要禁止转向的activity配置中加入android:screenorientation=”landscape” 属性.landscape = 横向...

叶城县13872999883: android 4.0怎么设置所有的activity页面无标题 -
赤亭止血: Window提供了很多属性来设置的如下:Activity设置全屏和无标题栏,要用到andorid.view.Window和Android.view.WindowManager. Window.FEATURE_NO_TITLE表示无标题栏. WindowManager.LayoutParams.FLAG_FULLSCREEN表示全...

叶城县13872999883: 请问多个Activity如何绑定到同一个服务 -
赤亭止血: 给你一个算是非主流方法吧. 你可以在service里做一个List<Activity> 然后每个需要绑定的.同时放到这个list里. 有情况就把这个list拿出来.找到里面的activity引用 挨个发

叶城县13872999883: 如何配置自己的Activity,让其他应用调用 -
赤亭止血: 感觉你说的有点像接sdk的感觉..比如现在很多厂商的广告sdk就是你说的这样在自己应用里面引入广告的Activity.不过安卓我不熟,你可以查查这方面的资料吧,应该是做一个Libray然后让其他应用引入你的文件.

叶城县13872999883: 导航布局,各个子activity如何设置标题栏?? -
赤亭止血: 不要启动在activity里边设,而是在启动的时候设,不就好了吗

叶城县13872999883: android设置页面有很多行,怎样设置每一行的点击跳转到新的Activity -
赤亭止血: 你的每一行应该是一个布局,那就为每个布局设置点击事件就ok了啊 OnClickListener layout_listener = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = null; switch (v.getId()) { ...

叶城县13872999883: 如何设置Activity的加载模式 -
赤亭止血: 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式.Android总Activity的启动模式分为四种:Activity启动模式设置: Activity的四种启动...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网