![](/img/trans.png)
[英]How to pass value from parent activity to child activity and on child activity exit, refresh the parent activity
[英]How to launch a child activity without pass through the parent activity?
在我的应用程序中,我必须进行两项活动和一项后台服务。 作为主要活动的第一个活动(活动A)用于启动/停止服务。 该服务用于在必要时启动活动(活动B)(即使活动A未运行,该服务也可以启动活动B)。
finish()
,这是屏幕上显示的活动A,我希望显示在活动B之前启动的最后一个活动。 我的问题是如何从服务启动活动B(作为独立活动)而不通过活动A(这是主要活动)?
这是我用来从服务启动活动B的代码:
Intent intent = new Intent(this, ActivityB.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这是我的清单:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- Activity A -->
<activity
android:name="ActivityA"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Activity B -->
<activity
android:name="ActivityB"
android:excludeFromRecents="true"
android:exported="true"
android:immersive="true"
android:launchMode="singleTask" />
<!-- Service -->
<service
android:name="Service"
android:enabled="true"
android:exported="true" >
</service>
</application>
提前致谢
Just Place this code in your Activity A
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("Service","Message");
ActivityA.this.finish();
}
};
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
LocalBroadcastManager.getInstance(this).registerReceiver(
mMessageReceiver, new IntentFilter("finishA"));
}
//将此代码放在Activity B的onCreate()方法中
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent("finishA");
LocalBroadcastManager.getInstance(ActivityB.this).sendBroadcast(intent);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.