0

10秒後にホーム画面にいるときにダイアログを表示したいのですが、

テーマを Theme.Dialog に変更し、

そして今、ホーム画面に戻るキーを押したときに正常にポップアップしました。

しかし、私の質問は、ホームキーを押してホーム画面に移動した後、

ダイアログは 10 秒後にポップアップ表示されません。

ただし、アプリケーションを開くと、

そこに浮かんでいることに気づきました。

それで、誰かがこの問題を解決する方法を教えてもらえますか?

これは私のコードです(私は2つのアクティビティを使用しています):

最初のアクティビティ:

public class MainActivity extends Activity {    
private Button bt_dialog;
AlertDialog.Builder builder;
AlertDialog mDialog;
Intent i = new Intent();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bt_dialog = (Button) findViewById(R.id.button1);
    i.setClass(MainActivity.this, DialogActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      
            //click button and show the dialog after 10s
    bt_dialog.setOnClickListener(new Button.OnClickListener() {

    @Override
    public void onClick(final View view) {
        CountDownTimer dlgCountDown;
        dlgCountDown = new CountDownTimer(10000, 1000){
        public void onTick(long millisUntilFinished) { 
        } 
        public void onFinish(){
            startActivity(i); 
        } 
        }.start(); 
        }
    });
}

2 番目のアクティビティ:

public class DialogActivity extends Activity{   
AlertDialog.Builder builder;
AlertDialog mDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_dialog);   
    String dialogText = "dialog text";
        TextView txt = (TextView) findViewById(R.id.textView1);
        txt.setText(dialogText);
        Button dismissbutton = (Button) findViewById(R.id.button1);
        dismissbutton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            DialogActivity.this.finish();
      }
    });
  }

そして、これは私のマニフェストコードです:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.testdialog.MainActivity"
        android:theme="@android:style/Theme"
        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 
        android:name="com.example.testdialog.DialogActivity"
        android:theme="@android:style/Theme.Dialog">
    </activity>

4

2 に答える 2

0

あなたのコードは正しく動作しています。私が間違っていなければ、あなたの問題は Event On が機能してButtonいなかったことです。アクティビティ 2 からアクティビティ 1 に戻る場合

Log何が起こっているのか、どの場所で起こっているのかを知ることができるように、コードのさまざまな場所に追加しました。

主な活動

public class MainActivity extends Activity {
private Button bt_dialog;
AlertDialog.Builder builder;
AlertDialog mDialog;
Intent i = new Intent();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    bt_dialog = (Button) findViewById(R.id.button1);
    i.setClass(Experiment.this, DialogActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    // click button and show the dialog after 10s
    Log.i("MainActivity ", "Create");
    bt_dialog.setOnClickListener(new Button.OnClickListener() {

        public void onClick(final View view) {
            Log.i("MainActivity ", "onClick--Start");
            CountDownTimer dlgCountDown;
            dlgCountDown = new CountDownTimer(10000, 1000) {
                public void onTick(long millisUntilFinished) {
                }

                public void onFinish() {
                    Log.i("MainActivity ment", "onClick-- Finish");
                    startActivity(i);
                }
            }.start();
        }

    });
   }
}

2 番目のアクティビティ:

public class DialogActivity extends Activity {
AlertDialog.Builder builder;
AlertDialog mDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_dialog);
    String dialogText = "dialog text";
    TextView txt = (TextView) findViewById(R.id.textView1);
    txt.setText(dialogText);
    Log.i("Dialog", "onCreate");
    Button dismissbutton = (Button) findViewById(R.id.button1);
    dismissbutton.setOnClickListener(new Button.OnClickListener() {

        public void onClick(View v) {
            Log.i("Dialog", "onClick");
            DialogActivity.this.finish();
        }
    });
   }
}

ログ猫の出力

05-25 10:33:14.007: I/dalvikvm-heap(19907): Grow heap (frag case) to 16.102MB for 3821200-byte allocation
05-25 10:33:14.117: I/dalvikvm-heap(19907): Grow heap (frag case) to 22.580MB for 6793232-byte allocation
05-25 10:33:14.267: I/MainActivity(19907): Create
05-25 10:33:19.267: I/MainActivity(19907): onClick--Start
05-25 10:33:29.267: I/MainActivity(19907): onClick-- Finish
05-25 10:33:29.337: I/Dialog(19907): onCreate
05-25 10:33:34.007: I/Dialog(19907): onClick
05-25 10:33:41.288: I/MainActivity(19907): onClick--Start
05-25 10:33:51.297: I/MainActivity(19907): onClick-- Finish
05-25 10:33:51.357: I/Dialog(19907): onCreate

Buttonそれで、あなたのインMainActivityはうまくいっているようです

于 2013-05-25T07:40:57.037 に答える