0
私は、アンドロイドをオフにするために電源ボタンを押すと、私のアプリはバックグラウンドモードになるようにしようとしています。パワーボタンを押してアンドロイドをオンにすると、アプリはフォアグラウンドモードになります。背景/前景モードを切り替える
私が手にエラーがある:
java.lang.RuntimeException:エラー放送受信テント{ 行為= android.intent.action.SCREEN_ON FLG = 0x50000010}
エラーが来ます
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenReceiver(MainActivity.this, this);
registerReceiver(mReceiver, filter);
moveTaskToBack(true);
}
}
:FLAG_ACTIVITY_CLEAR_TOPここ
との意図からMainActivityです
ここでBroadcastReceiverです:
public class ScreenReceiver extends BroadcastReceiver {
MainActivity mainAct;
Context ctx;
public ScreenReceiver(MainActivity act, Context con) {
mainAct = act;
ctx = con;
}
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
mainAct.moveTaskToBack(true);
System.out.println("OFF");
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
Intent i = new Intent(ctx, ScreenReceiver.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
mainAct.startActivity(i);
System.out.println("ON");
}
}
}
私は次のチュートリアルからコードを使用しています:
https://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/