2017-07-29 43 views
0

無法創建通知,我已經檢查了幾個代碼示例,看起來和我的一樣。請檢查下面的代碼,以及我犯的錯誤。Android,創建通知代碼什麼都不做

下面我貼了2個類。 MainActivity類,其中一個按鈕點擊應該創建通知。第二類,創建通知。

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 
    NotificationBuilder nB=new NotificationBuilder(); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Button button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       goToSecondActivity(); 
       nB.createNotify(); 
      } 

     }); 


    } 

    private void goToSecondActivity() { 


     Intent intent = new Intent(this, SecondActivity.class); 
     startActivity(intent); 

    } 
} 


**Second class** 

import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.Context; 
import android.content.Intent; 
import android.support.v4.app.NotificationCompat; 
import android.support.v4.app.TaskStackBuilder; 
import android.support.v7.app.AppCompatActivity; 

public class NotificationBuilder extends AppCompatActivity { 

    void createNotify() { 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setContentTitle("My notification") 
       .setContentText("Hello World!"); 

     Intent resultIntent = new Intent(this, MainActivity.class); 
     TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
     stackBuilder.addParentStack(MainActivity.class); 
     stackBuilder.addNextIntent(resultIntent); 

     PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(
       0, PendingIntent.FLAG_UPDATE_CURRENT); 
     mBuilder.setContentIntent(resultPendingIntent); 
     NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     mNotificationManager.notify(001, mBuilder.build()); 
    } 
} 

試用noughat和Kitkat Apis水平。 使用另一部手機嘗試過,但類似的結果

回答

0

NotificationBuilder nB=new NotificationBuilder();

你基本上從來不應該創建一個Activity這樣。這意味着幾個必需的內部組件將不會被正確初始化。

這意味着thiscreateNotify的所有實例都無法按預期工作。上下文需要是MainActivity而不是您的構建器類。

停止將NotificationBuilder更改爲Activity並將正確的Context作爲參數傳遞給createNotify。用上下文替換this的大部分調用應修復您的代碼。

+0

感謝您的回覆。但是我無法理解,請您對我的代碼進行一些編輯。 –