intent(インテント)の受け取り方
基本ですが。
明示的
intentを受け取る側はActivityクラスのgetIntentメソッドを使用すれば良い。 また、intentに付加情報が設定されている場合はget〜Extraメソッドを使えば 取り出すことができる。
// キーを使ってパラメータを取得 final String var = intent.getStringExtra("com.suddenAngerSystem.displayString"); text.setText(var);
Intentを使って画面を遷移する(明示的Intent) « Tech Booster
Intentはthis.getIntent()メソッドで受け取ります。 ただし、IntentによらないでsubActivityが起動した場合、 nullとなります。受け取り処理はnullチェックを入れるなど、 値に注意して下さい。
Intent intent = getIntent(); if (intent != null) { String str = intent.getStringExtra("org.jpn.techbooster.demo.intent.testString"); Toast.makeText(this, str, Toast.LENGTH_LONG).show(); }
暗黙的
気になってたのはここ。送り側は、こちら。
Intent.ACTION_SENDで他のアプリケーションと連携する | Tech Booster
getIntentでIntentを取得します。Intentが通常の起動(android.intent.action.MAIN) ではなくACTION_SENDだった場合にだけgetExtrasでBundleを取得して文字列を取り出します。
Intent intent = getIntent(); String action = intent.getAction(); if (Intent.ACTION_SEND.equals(action)) { Bundle extras = intent.getExtras(); if (extras != null) { CharSequence ext = extras.getCharSequence(Intent.EXTRA_TEXT); if (ext != null) { editText_.setText(ext); } }
ボコ:【android開発】電池残量を取得する方法 開発02 インテントを受け取る
AndroidManifest.xmlをいじらずに済む。@Override protected void onResume() { super.onResume(); //受信を開始 IntentFilter filter=new IntentFilter(); filter.addAction(Intent.ACTION_BATTERY_CHANGED); registerReceiver(myReceiver,filter); }
//受信機 public BroadcastReceiver myReceiver = new BroadcastReceiver() { private int scale; private int level; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) { // 電池残量の最大値 scale = intent.getIntExtra("scale", 0); // 電池残量 level = intent.getIntExtra("level", 0); } } };
すこしいろいろ