0

Drawables と Intent を使用して、簡単な初心者用アプリケーションを作成しました。アイデアは4つのアクティビティを作成し、スレッドを使用して1つのアクティビティから他のアクティビティに移動し、最後のアクティビティに到達したら、アプリケーションを自動的に閉じて、「BYE」などのトーストをポップアップさせたい. インテントまたはその他の方法で可能であれば、私を案内してください。

私の最後のアクティビティのコードは以下のとおりですが、最後のアクティビティから無限にループします:

package mj.manan.thisisit;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class ScreenLast extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screenlast);

        Thread t1 = new Thread(){
            public void run(){

                try {
                    Thread.sleep(2000);
                    finish();
                } catch (InterruptedException e) {
                    // Auto-generated catch block
                    e.printStackTrace();
                }finally{
                     Intent innt = new Intent(ScreenLast.this,ScreenLast.class);
                     innt.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                     startActivity(innt);
                     ScreenLast.this.finish();

                }
            }
        };
        t1.start();

 }

}
4

5 に答える 5

0

さまざまなアプローチが考えられます。あなたの場合にもブロードキャストの送信者と受信者を使用できると思います。私が投稿した同様の回答が役立つ場合があります。

別のアクティビティからアクティビティを終了する

于 2013-10-09T05:23:19.377 に答える
0

同じアクティビティを呼び出しています:-Intent innt = new Intent(ScreenLast.this,ScreenLast.class);

これの代わりに他のアクティビティを呼び出すか。

または

これにはハンドラーを使用することもできます-

@Override
    protected void onCreate(Bundle savedInstanceState) 
        {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screenlast);
        Toast.makeText(ScreenLast.this, "Bye", Toast.LENGTH_SHORT).show();
        move_next();
        }

public void move_next()
{
final Handler handle = new Handler();
        Runnable delay = new Runnable() {
            public void run() 
            {               
                finish();
            }
        };
        handle.postDelayed(delay,2000);
}
于 2013-10-09T05:29:09.227 に答える
0

私が理解したことが正しい場合は、アクティビティスタックが空でない場合、またはより正確には、スタックに複数のアクティビティがある場合に、アクティビティを終了させたいと考えています。

私がどのようにそれを行ったかをお見せします。好きなように微調整できます

アクティビティを閉じたいポイントに到達したら、次のようにします。

                   Intent intent = new Intent(Main.this, Main.class);
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        intent.putExtra("EXIT", true);
                        startActivity(intent);

次に onCreate に次を追加します。

if (getIntent().getBooleanExtra("EXIT", false)) {
            finish();
        }

2番目の部分にトーストを追加したり、タイマーを追加したり、好きなものを追加したりできます。要点は、最初にすべてのアクティビティ スタックをクリアして、現在のものだけを残して...それから終了することです。

于 2013-10-09T05:23:24.127 に答える
0

このサンプル コードを使用して、アプリケーションを終了できます。

                        Intent intent1 = new Intent(Intent.ACTION_MAIN);
                        intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        intent1.addCategory(Intent.CATEGORY_HOME);
                        startActivity(intent1);
于 2013-10-09T05:25:09.820 に答える