Ich habe eine Aktivität und einen Service. Im Dienst habe ich einen BroadcastReceiver, wo ich eine Nachricht ausgeben möchte. Warum wird die Nachricht nicht angezeigt, wenn ich diesen Dienst starte?Warum funktioniert der BroadcastReceiver nicht?
Aktivität:
public class MainActivity extends AppCompatActivity
{
private Button button_sel; //adaugat
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkLicenta(); //adaugat
// adaugat
findViewById(R.id.button).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, MainService.class);
startService(intent);
Toast.makeText(MainActivity.this, "Service, Running", Toast.LENGTH_SHORT).show();
}
}); //pana aici
// adaugat
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, MainService.class);
stopService(intent);
Toast.makeText(MainActivity.this, "Service, Stopped", Toast.LENGTH_SHORT).show();
}
}); //pana aici
}
}
Service:
public class MainService extends Service
{
private static final String TAG = "HelloService";
private boolean isRunning = false;
@Override
public void onCreate()
{
registerReceiver(counter, new IntentFilter(Intent.ACTION_SCREEN_ON));
Log.i(TAG, "Service, onCreate");
Toast.makeText(MainService.this, "Service, Created", Toast.LENGTH_SHORT).show();
isRunning = true;
}
private BroadcastReceiver counter = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(MainService.this, "LALALA", Toast.LENGTH_SHORT).show();
}
};
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
Log.i(TAG, "Service, onStartCommand");
Toast.makeText(MainService.this, "Service, Started", Toast.LENGTH_SHORT).show();
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy()
{
Log.i(TAG, "Service, onDestroy");
Toast.makeText(MainService.this, "Service, Destroyed", Toast.LENGTH_SHORT).show();
isRunning = false;
}
@Override
public IBinder onBind(Intent intent)
{
Log.i(TAG, "Service, onBind");
return null;
}
}
UPDATE: die Nachricht wird tatsächlich kommen, wenn Sie auf dem Bildschirm drehen, weil der ACTION_SCREEN_ON.
Ich habe, aber ich muss etwas falsch gemacht haben, denn nachdem ich deine kopiert/eingefügt habe, hat es funktioniert. Danke ^. ^ –