2013-07-05 13 views
8

私はこのコードを使用して、すべてのsharedpreferencesをクリアして、私のアプリでボタンを実装:アクティビティを再表示せずにリフレッシュしますか?

context.getSharedPreferences("bifrostPrefs", 0).edit().clear().commit(); 

今の問題は、私はボタンを使用するたびに、私はそれは結果を確認するために活動し、再オープンを終了する必要があるということです。私は私が活動を再度開く場合、私は2回のバックボタンを押す必要があることに気づいまで

Intent reOpen = new Intent (Bifrost.this, Bifrost.class); 
startActivity(reOpen); 

私の考えはスマートに見えた:私は単にボタンは、このコードで活動を再オープンすることによってこれを解決しようとしました主な活動に戻るだから私はいくつかのreserachを行なったし、このコードが見つかりました:これは今、正常に動作します

finish(); 
startActivity(getIntent()); 

、活動がリフレッシュされますが、その後、私は一度だけ戻るボタンをクリックする必要があります。しかし、それが「点滅」することなく活動をリフレッシュする別の方法がありますか?ご存知のように、新しいアクティビティを開くたびに、それが点滅してアプリが1秒遅れます。これをバイパスしてアクティビティをリフレッシュする方法はありますか?

+0

アニメーションなしでパスインテント – QuokMoon

答えて

15

まあ、活動の内容を更新する方が良いだろうが、それはあまりにも複雑だ場合は、この方法では、デフォルトのアニメーションを上書きすることができます。

finish(); 
overridePendingTransition(0, 0); 
startActivity(getIntent()); 
overridePendingTransition(0, 0); 
+0

はい!これはまさに私が探していたものです。アプリは私が今意図している通りに機能し、さらに複雑さは必要ありません。ありがとうございました! – Guy

+0

も私のために働く! – publicknowledge

+0

これも私のために働いた。シンプルなソリューション。 –

0

共有設定の値に基づいて値やサイズを変更できるビューがありますか?そうであれば、ビューを初期化し、onCreate()メソッドとonClick()メソッドでそのメトンを呼び出すメソッドを作成します。

1

あなたがにフラグIntent.FLAG_ACTIVITY_NO_ANIMATIONlink)を追加することができますreOpenすべてのアニメーションをエリートする予定です。しかし、他の答えから述べたように、あなたの内部のデータをリフレッシュするほうが良いActivity

+0

これは賢いです! –

関連する問題