2016-08-07 42 views
0

Ich versuche, einen Sperrbildschirm zu erstellen. Wenn ich versuche, den com.fira.locker.LockScreenActivity vom broadcastReceiver zu starten, erhalte ich nur einen Fehler. Der Fehler sagt:Der Versuch, eine Aktivität vom Broadcast-Empfänger aus zu starten

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Intent.setFlags(int)' on a null object reference 

Dies ist mein Code:

package com.fira.locker; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Environment; 
import android.util.Log; 
import android.view.inputmethod.EditorInfo; 
import android.widget.EditText; 
import android.widget.TextView; 

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 

/** 
* Created by Johannett321 on 10/04/16. 
*/ 
public class LockScreenReceiver extends BroadcastReceiver { 

    public String screenlockedNumber; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     //start activity 
     Intent i = new Intent(); 
     i.setClassName("com.fira.locker",  "com.fira.locker.LockScreenActivity"); 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(i); 
     } 
} 

Antwort

0

Warum beginnen Sie nicht einfach Absicht wie folgt ..

startActivity(new Intent(this, LockScreenActivity.class)); 
finish(); 

oder Sie können versuchen, diese ..

Intent i = new Intent(context,LockScreenActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(i); 
+0

Danke, die letzte funktionierte. Der erste funktioniert nicht in einem Broadcast Receiver, denke ich. –

+0

Es wird funktionieren, wenn wir den Kontext der Aktivität angeben. BTW Ihr Problem ist gelöst? –

+0

Ja, mein Problem ist gelöst. Das Problem war nicht einmal in dem Code, den ich teilte, es war in der LockScreenActivity-Klasse ... –

0

Verwenden Sie diesen Code. Hoffe es hilft dir.

Intent i= new Intent(context.getApplicationContext(), LockScreenActivity.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(i);