dポイントプレゼントキャンペーン実施中!

AndroidStudioでBroadcastReceiverクラス内でActivityクラスを取得したいのですが、どうすれば取得できますでしょうか?
BroadcastReceiverクラス内で

Intent intent1 = new Intent(activity.getApplication(), Error.class);
activity.startActivity(intent1);と入力すると startActivity の部分が赤字になってしまうのですが
Activity activity = new Activity();とし

....activity. startActivity などとしても変数が灰色で困っています。

AndroidStudioでBroadcastReceiverクラス内でActivityクラスを取得したいのですが、どうすれば取得できるか教えてください。

目的
Android端末のWi-Fiの接続が切れた時にエラー画面に遷移させたい。

参考
https://kokufu.blogspot.jp/2016/12/android-wi-fi …

----

import android.content.IntentFilter;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
// Activity 等の Context の中で
WifiConnectionWatcher mWifiConnectionWatcher = new WifiConnectionWatcher();

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

@Override
protected void onResume() {
super.onResume();

IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); // "android.net.wifi.STATE_CHANGE"

registerReceiver(mWifiConnectionWatcher, intentFilter);
}

@Override
protected void onPause() {
super.onPause();

unregisterReceiver(mWifiConnectionWatcher);
}
}
ーーー

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.NetworkInfo;
import android.net.wifi.WifiManager;
import android.util.Log;

import static android.content.ContentValues.TAG;

public class WifiConnectionWatcher extends BroadcastReceiver {
Activity activity = new Activity();
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { // "android.net.wifi.STATE_CHANGE"
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
switch (info.getState()) {
case DISCONNECTED:
Intent intent1 = new Intent(activity.getApplication(), Error.class);
activity.startActivity(intent1);
break;
case SUSPENDED:
break;
case CONNECTING:
break;
case CONNECTED:
break;
case DISCONNECTING:
break;
case UNKNOWN:
Log.e(TAG, "Wifi connection state is UNKNOWN");
break;
default:
Log.e(TAG, "Wifi connection state is OTHER");
break;
}
}
}
}
----
import android.app.Activity;
import android.os.Bundle;

public class Error extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.error);
}
}
-----
<activity android:name=".Error"></activity>
<receiver android:name=".WifiConnectionWatcher">
<intent-filter>
<action android:name="android.net.wifi.STATE_CHANGED">
</action></intent-filter>
</receiver>

A 回答 (1件)

取得するんじゃなくて教えておくのが簡単。

    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!