0

私はアンドロイド開発に非常に慣れていないので、私の無知をご容赦ください。

メイン アクティビティをロードする前に、スプラッシュ スクリーンを作成しました。スプラッシュは正常に動作していますが、問題の原因は主なアクティビティであり、インスタンス化を続けています。

Splash.java

public class Splash extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    final AdController optinController = new AdController(
            getApplicationContext(), "SECTION_ID");

    final Splash splash = this;

    optinController.loadOptin((Activity) splash, "SECTION_ID",
        new AdOptinListener() {
            public void onAdOptin() {
                // once optin process is complete, continue to main app activity
                launchMain();
            }
        }
    );


}

public void launchMain() {
    finish();
    Intent myIntent = new Intent(Splash.this, MainActivity.class);
    myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(myIntent);
}
}

MainActivity.java

public class MainActivity extends Activity {
private AdController myController;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    myController = new AdController(getApplicationContext(), "SECTION_ID");
    myController.loadNotification();
}
}

マニフェスト ファイル内:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".Splash"
        android:label="@string/title_activity_splash" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" 
        android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

使用android:launchMode="singleInstance"しましたが、それでも復元し続けます。

助けてください。前もって感謝します。

4

4 に答える 4

0

はい、以下はマニフェスト ファイルのスニペットです。スプラッシュ スクリーンにタイマーを使用し、特定の時間後にメイン クラスに移動します。

アクティビティ android:name=".Splash" android:screenOrientation="portrait" android:label="@string/app_name">

于 2012-08-31T06:55:40.537 に答える
0

public class Splash extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);//|Window.FEATURE_INDETERMINATE_PROGRESS
    setContentView(R.layout.splash);

    final Timer time = new Timer();
    time.schedule(new TimerTask() {
        @Override    
        public void run() {
            Intent intent = new Intent(Splash.this,MainActivity.class);
            startActivity(intent);
            finish();
        }
    },1000);
}}

それはうまくいきます、私はインスタティエーションによって正確にあなたを手に入れます.また、単一のインスタンスを使用しないでください.ここでそれを要求することは想定されていません.

于 2012-08-31T06:45:13.083 に答える
0

インテントフラグ Intent.FLAG_ACTIVITY_SINGLE_TOP を削除する必要があると思います

于 2012-08-31T06:55:52.333 に答える
0

manifest.xml で、次の例に示すように、最初に起動するアクティビティを LAUNCHER としてカテゴリを設定し、その他を DEFAULT として設定します。

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".Splash"
        android:label="@string/title_activity_splash" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" 
        android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>
于 2015-02-05T05:05:02.497 に答える