@Test public void getCurrentActivity_shouldReturnTheProvidedCurrentActivity() throws Exception { ActivityGroup activityGroup = new ActivityGroup(); Activity activity = new Activity(); shadowOf(activityGroup).setCurrentActivity(activity); assertThat(activityGroup.getCurrentActivity()).isSameAs(activity); } }
@Override protected void onCreate(Bundle savedInstanceState) { if (helper == null) { helper = getHelperInternal(this); created = true; } super.onCreate(savedInstanceState); }
@Override protected void onDestroy() { super.onDestroy(); releaseHelper(helper); destroyed = true; }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); Intent homeIntent = new Intent(this, HomeActivity.class); Intent categoryIntent = new Intent(this, CategoryActivity.class); Intent collectionIntent = new Intent(this, CollectionActivity.class); Intent cartIntent = new Intent(this, CartActivity.class); Intent memberIntent = new Intent(this, MoerActivity.class); tabHost = (TabHost) findViewById(R.id.tabhost); tabHost.setup(getLocalActivityManager()); tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1").setContent(homeIntent)); tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tab2").setContent(categoryIntent)); tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3").setContent(collectionIntent)); tabHost.addTab(tabHost.newTabSpec("tab4").setIndicator("tab4").setContent(cartIntent)); tabHost.addTab(tabHost.newTabSpec("tab5").setIndicator("tab5").setContent(memberIntent)); radioGroup = (RadioGroup) super.findViewById(R.id.radioGroup_menu); radioGroup.setOnCheckedChangeListener(this); }
}else if(context instanceof ActivityGroup){ Log.d("ActivityGroup","==ActivityGroup"); if (((ActivityGroup) context).getCurrentActivity() instanceof AppCompatActivity && ((AppCompatActivity) ((ActivityGroup) context).getCurrentActivity()).getSupportActionBar()!=null){ actionBarHeight = ((AppCompatActivity) ((ActivityGroup) context).getCurrentActivity()).getSupportActionBar().getHeight(); }else if (((ActivityGroup) context).getCurrentActivity() instanceof Activity && ((Activity) ((ActivityGroup) context).getCurrentActivity()).getActionBar()!=null){ actionBarHeight = ((Activity) ((ActivityGroup) context).getCurrentActivity()).getActionBar().getHeight();
Activity ac = (Activity) context; ActivityGroup ag = (ActivityGroup) ac.getParent(); Intent i = new Intent(SummaryCostScreen.this,PermissionsScreen.class); View view = ag.getLocalActivityManager().startActivity("activity9",i.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); this.setContentView(view);
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { Activity target = getCurrentActivity(); if (target != null) { return target.onKeyDown(keyCode, event); } else { return super.onKeyDown(keyCode, event); } }
@Override protected void attachBaseContext(Context newBase) { // 替换插件的BaseContext mDelegate = new PluginActivityDelegate(); newBase = mDelegate.createActivityContext(this, newBase); super.attachBaseContext(newBase); }
@Override protected void onCreate(Bundle savedInstanceState) { if (mDelegate != null) { mDelegate.handleActivityOnCreateBefore(this, savedInstanceState); } super.onCreate(savedInstanceState); if (mDelegate != null) { mDelegate.handleActivityOnCreateAfter(this, savedInstanceState); } }
@Override protected void onDestroy() { super.onDestroy(); if (mDelegate != null) { mDelegate.handleActivityOnDestroy(this); } }
}else if(context instanceof ActivityGroup){ Log.d("ActivityGroup","==ActivityGroup"); if (((ActivityGroup) context).getCurrentActivity() instanceof AppCompatActivity && ((AppCompatActivity) ((ActivityGroup) context).getCurrentActivity()).getSupportActionBar()!=null){ actionBarHeight = ((AppCompatActivity) ((ActivityGroup) context).getCurrentActivity()).getSupportActionBar().getHeight(); }else if (((ActivityGroup) context).getCurrentActivity() instanceof Activity && ((Activity) ((ActivityGroup) context).getCurrentActivity()).getActionBar()!=null){ actionBarHeight = ((Activity) ((ActivityGroup) context).getCurrentActivity()).getActionBar().getHeight();
private void initSlidingDrawerContent() { mTestContent.removeAllViews(); //View view = LayoutInflater.from(this).inflate(R.layout.act_test, null); View view = activityToView(this, new Intent(MainActivity.this, TestActivity.class)); mTestContent.addView(view); } private View activityToView(ActivityGroup parent, Intent intent) { LocalActivityManager mLocalActivityManager = parent.getLocalActivityManager(); final Window w = mLocalActivityManager.startActivity("TagName", intent); final View wd = w != null ? w.getDecorView() : null; if (wd != null) { wd.setVisibility(View.VISIBLE); wd.setFocusableInTouchMode(true); ((ViewGroup) wd) .setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS); } return wd; }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ MessageDialog dialog = new MessageDialog(MainActivity.this, getString(R.string.common_title_tips), getString(R.string.common_confirm), getString(R.string.common_cancel), getString(R.string.common_exit)); dialog.setBtn1ClickListener(new OnClickListener() { @Override public void onClick(View v) { LruCacheManager.getInstance().evictAll(); ActivityPageManager.getInstance().exit(MainActivity.this); } }); dialog.show(); return true; } return super.onKeyDown(keyCode, event); } }
@Override protected void onCreate(Bundle bundle) { boolean inited = initTargetActivity(bundle); super.onCreate(bundle); if (!inited) { return; } loadTargetActivity(bundle); if (!ProxyEnvironment.isEnterProxy(mTargetPackageName)) { return; } // ActvityGroup不入栈,否则通过LaunchMode找Activity栈的时候会有问题。 if (this.getParent() == null) { ProxyEnvironment.getInstance(mTargetPackageName).pushActivityToStack(this); } if (sActivityLifecycleCallbacks != null) { sActivityLifecycleCallbacks.onActivityCreated(this, bundle); } }
@Override protected void onDestroy() { super.onDestroy(); if (sActivityLifecycleCallbacks != null) { sActivityLifecycleCallbacks.onActivityDestroyed(this); } // 为了确保出栈,在finish和onDestroy各调用一次,destroy回调比较晚,可能会影响栈管理。 if (!ProxyEnvironment.isEnterProxy(mTargetPackageName) || this.getParent() != null) { return; } ProxyEnvironment.getInstance(mTargetPackageName).popActivityFromStack(this); }
/** * changeLocalActivityManager * * @param context Context */ private void changeLocalActivityManager(Context context) { if (mProxyLocalActivityManager == null && !(mTargetActivity instanceof ActivityProxy)) { try { ActivityGroup tabActivity = (ActivityGroup) mTargetActivity; mProxyLocalActivityManager = new LocalActivityManagerProxy(tabActivity.getLocalActivityManager(), mTargetPackageName); JavaCalls.setField(tabActivity, "mLocalActivityManager", mProxyLocalActivityManager); // Field field = ActivityGroup.class.getDeclaredField("mLocalActivityManager"); // field.setAccessible(true); // field.set(tabActivity, mProxyLocalActivityManager); } catch (Exception e) { if (DEBUG) { e.printStackTrace(); } } } }
LocalActivityManager lam = act.getLocalActivityManager(); lam.dispatchCreate(state); tabView.setup(lam);