NPE setting content view to any new activity using thread
===

I use a thread and holder for downloading some data and then displaying a new view with buttons that allow you to browse further through the app.
But i think i'm doing something wrong, because any next activity i use, crashes with a null pointer exception on the setContentView line. When i comment this line, nothing goes wrong (so i guess that means that the activity is declared good in the manifest and starts normally). 
It looks like because of the thread the new activity has no place to set the content to or something.. 

           public void onCreate(Bundle savedInstanceState)
    	      {
    	        super.onCreate(savedInstanceState);
    	        
    	        startUp.start();
    	        String language =  Locale.getDefault().getISO3Language();
    	        background = getBackgroundImage();
    	        handler = new Handler();
    	        if (startUp.isAlive()){
    	        	setContentView(R.layout.startup_loading);
    	        	tv1=(TextView)findViewById(R.id.tvloading);
    	        	if(language.equals("nld")){
    	        		tv1.setText("bijwerken");
    	        	}else{
    	        		tv1.setText("loading");
    	        	}
    		        pbar=(ProgressBar)findViewById(R.id.progressBar1);
    		        pbar.setVisibility(1);
    		        loadingBackground=(RelativeLayout)findViewById(R.id.startup_background_loading);
    		        loadingBackground.setBackgroundDrawable(background);
    	        }
    	   
    	      }
    	    
    	    
    	    
    	        Thread startUp= new Thread(){
            		public void run() {
    	        
    
    			    AssetManager assetManager = getAssets();
    			    InputStream inputStream = null;
    			    try {
    			        inputStream = assetManager.open("originalDelftJson.json");
    			    } catch (IOException e) {
    			        Log.e("tag", e.getMessage());
    			    }
    			    ObjectMapper objectMapper = new ObjectMapper();
    
    			
    (... lot of code for data processing)
    
    			   
    		        } catch (JsonParseException e) {
    					// XXX Auto-generated catch block
    					e.printStackTrace();
    				} catch (IOException e) {
    					// XXX Auto-generated catch block
    					e.printStackTrace();
    				}
    				Log.i("tijdlog","einde logging" );
    				
    				//set new view for loaded
    				handler.post(new Runnable() {
    					@Override
    					public void run() {
    						setContentView(R.layout.startup_loaded); 
    						btCategory=(Button)findViewById(R.id.btn_category);
    						loadedBackground=(RelativeLayout)findViewById(R.id.startup_background_loaded);
    						loadedBackground.setBackgroundDrawable(background);
    						if(language.equals("nld")){
    			        		btCategory.setText("dutchnema");
    			        	}else{
    			        		btCategory.setText("engname");
    			        	}
    						 
    				          //newactivitybutton
    			    		
    			    		btCategory.setOnClickListener(new View.OnClickListener() {
    			    			
    			    			@Override
    			    			public void onClick(View v) {
    			    				// TODO Auto-generated method stub
    			    				startActivity(new Intent ("com.jasper.delftsapp.OVERVIEW"));
    			    				finish();	
    			    			}
    			    		});
    					}
    				});
    	           
    			
    	      } 
    	    
    	    };

Should i finish the tread or the runnable? is that my problem? i tried this but it only finished my total app so that sucked. Anyone sees my problem?