【发布时间】:2011-05-13 16:51:27
【问题描述】:
我想要一个只能从我的应用中的某些其他活动启动的活动,而不能从其他活动启动
目前,这是可行的:
public abstract class Launcher extends Activity {
protected static boolean flag = true;
protected abstract void Launch();
public static class myPrivateActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(flag)
finish();
setContentView(R.layout.main);
}
}
}
public class SpecialActivity extends Launcher {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newlayout);
}
@Override
protected void Launch {
flag = false;
Intent i = new Intent(Intent.ACTION_VIEW);
String name = myPrivateActivity.class.getName();
i.setClassName(this, name );
startActivity(i);
//finish();
}
}
在 android 清单中
<activity android:name=".Launcher$myPrivateActivity"
android:label="Private?">
但是,我想知道是否有比仅使用标志更好的解决方案?
【问题讨论】:
标签: android inheritance android-activity inner-classes