Intent intent=new Intent("android.intent.action.SecondActivity");
startActivity(intent);
不知道大家有没有思考过这三个事情: 1、当A应用 启动 B应用的SecondActivity,那么B应用的MainActivity会不会被启动呢?正常情况下,我们点击应用B,进到的是MainActivity这个活动,那么现在我们是通过跨应用启动,会不会要经过B的MainActivity呢?答案是不会。 2、当我们在SecondActivity中点击Back回退键时,回到的是A应用的mainActivity界面,这里时候大家有没有想过。 SecondActivity和appA的mainActivity是不是同处于一个栈中呢?这时候就要去打印栈的ID了。 3、由上面的两件事,不知道大家想起:Android对于Activity的管理,也就是framework层的ActivityManager。也就是说,你手机上的N多应用,当你打开某一个应用是,这个应用的Activity都是由ActivityManager这娃来创建和管理的。应用本身并没有创建Activity的能力。当然这其中又涉及到了Ibinder的通讯。这里暂时不讲。
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
String packageName = "com.example.mylife.anotherapp";
String className = "com.example.mylife.anotherapp.MainActivity";
intent.setClassName(packageName, className);
//second method
//intent.setComponent(new ComponentName("com.example.mylife.anotherapp","com.example.mylife.anotherapp.MainActivity"));
Bundle bundle = new Bundle();
bundle.putString("msg", "this message is from project B ");
intent.putExtras(bundle);
intent.putExtra("pid", android.os.Process.myPid());
startActivityForResult(intent, 1);
//startActivity(intent);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1:
if(resultCode == RESULT_OK) {
textView.setText(data.getStringExtra("result"));
}
break;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.text);
Intent intent = getIntent();
if(intent != null) {
textView.setText(intent.getStringExtra("msg"));
}
}
public void OnClick(View view) {
Intent intent = new Intent();
intent.putExtra("result","OK! from project a.");
this.setResult(RESULT_OK,intent);
this.finish();//要清楚这里为什么要用finish()。
}
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent = new Intent();
intent.putExtra("result","OK! from project a.");
this.setResult(RESULT_OK,intent);
this.finish();//要清楚这里为什么要用finish()。
}
public class MyService extends Service {
private static final String TAG = "MyService";
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "onCreate: ");
}
@Override
public int onStartCommand(Intent intent,int flags, int startId) {
Log.d(TAG, "onStartCommand: ");
if(intent != null) {
Log.d(TAG, "onStartCommand: "+intent.getStringExtra("msg"));
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy: ");
}
}
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
String packageName = "com.example.mylife.anotherapp";
String className = "com.example.mylife.anotherapp.MyService";
intent.setClassName(packageName, className);
switch (v.getId()) {
case R.id.btn_start:
Bundle bundle = new Bundle();
bundle.putString("msg", "this message is from project B ");
intent.putExtras(bundle);
intent.putExtra("pid", android.os.Process.myPid());
startService(intent);
break;
case R.id.btn_stop:
stopService(intent);
break;
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有