2016-08-03 68 views
0

我有一个具有图像和文本的片段。我的应用程序运行速度非常慢,导航抽屉需要30秒才能滑动。我在主线程中使用了什么?我声明textViewImageViewRun()方法中被编译到另一个线程中。主线程上的工作太多了?

片段Java;

public class headercode extends Fragment implements Runnable{ 

    ImageView image; 
    TextView text; 
    View myView;  

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     myView = inflater.inflate(R.layout.frag, container, false); 
     this.run(); 
     return myView; 
    } 
    @Override 
    public void run(){ 
     android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND); 
     image = (ImageView)myView.findViewById(R.id.image); 
     image.setBackgroundResource(R.drawable.ahmed); 
     text = (TextView)myView.findViewById(R.id.text); 

    } 
} 

我MainActivity的Java onCreate方法;

public class MainActivity extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener { 

    Button button; 
    headercode header; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);  

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState();  

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 

     if (findViewById(R.id.fragment) != null){ 

      header = new headercode(); 
      getSupportFragmentManager().beginTransaction().add(R.id.fragment,header).commit(); 
     } 

    } 
+1

这是很无感代码。使用_Handler_ – Piyush

回答

0

你需要在一个线程中运行Runnable,不使用.run()

Thread thread = new Thread(this /* the runnable */); 
thread.start(); 
相关问题